Location based data

ABSTRACT

A computer-implemented method and computer program product for providing data that includes location-based access control information concerning a data relay device located within a network infrastructure. The data relay device is loaded with one or more features, such that the one or more features loaded are dependent, at least in part, upon the location-based access control information.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of and claims 35 USC § 120 priorityto U.S. patent application Ser. No. 10/377,177, entitled “Location BasedData”, which was filed on 28 Feb. 2003.

U.S. patent application Ser. No. 10/377,177 claims priority under 35 USC§119(e) to the following U.S. Provisional Patent Applications: Ser. No.60/361,419, titled “A System for Network Definition Based on DeviceLocation”, filed on Mar. 1, 2002; Ser. No. 60/361,421, titled “A Systemto Regulate Access as a Function of Device Location”, filed on Mar. 1,2002; Ser. No. 60/361,420, titled “Systems and Methods to DefineLocation of a Network Device or a Networked Device”, filed on Mar. 1,2002; Ser. No. 60/361,380, titled “A System and Method to ProvideSecurity in a Network Based on Device Location Information”, filed onMar. 1, 2002; Ser. No. 60/387,331, titled “Location Discovery andConfiguration Provisioning Server”, filed on Jun. 10, 2002; and Ser. No.60/387,330, titled “System and Method for Switch Based LocationDiscovery and Configuration Provisioning of Network Attached Devices”,filed on Jun. 10, 2002. The entire contents of each of theseapplications are hereby incorporated by reference.

This application is also related to International Application SerialNumber PCT/US03/06169, entitled “Location Aware Data Network”, which wasfiled on 28 Feb. 2003 and is herein incorporated by reference.

TECHNICAL FIELD

This description relates to determination and use of locationinformation within a data network.

BACKGROUND

Computing systems are useful tools for the exchange of information amongindividuals. The information may include, but is not limited to, data,voice, graphics, and video. The exchange is established throughinterconnections linking the computing systems together in a way thatpermits the transfer of electronic signals that represent theinformation. The interconnections may be either cable or wireless. Cableconnections include, for example, metal and optical fiber elements.Wireless connections include, for example infrared, acoustic, and radiowave transmissions.

Interconnected computing systems having some sort of commonality arerepresented as a network. For example, individuals associated with acollege campus may each have a computing device. In addition, there maybe shared printers and remotely located application servers sprinkledthroughout the campus. There is commonality among the individuals inthat they all are associated with the college in some way. The same canbe said for individuals and their computing arrangements in otherenvironments including, for example, healthcare facilities,manufacturing sites and Internet access users. A network permitscommunication or signal exchange among the various computing systems ofthe common group in some selectable way. The interconnection of thosecomputing systems, as well as the devices that regulate and facilitatethe exchange among the systems, represent a network. Further, networksmay be interconnected together to establish internetworks.

The process by which the various computing systems of a network orinternetwork communicate is generally regulated by agreed-upon signalexchange standards and protocols embodied in network interface cards orcircuitry. Such standards and protocols were borne out of the need anddesire to provide interoperability among the array of computing systemsavailable from a plurality of suppliers. Two organizations that havebeen responsible for signal exchange standardization are the Instituteof Electrical and Electronic Engineers (IEEE) and the InternetEngineering Task Force (IETF). In particular, the IEEE standards forinternetwork operability have been established, or are in the process ofbeing established, under the purview of the IEEE 802 committee on LocalArea Networks (LANs) and Metropolitan Area Networks (MANs).

SUMMARY

In one implementation, a computer-implemented method includes providingdata that includes location-based access control information concerninga data relay device located within a network infrastructure. The datarelay device is loaded with one or more features, such that the one ormore features loaded are dependent, at least in part, upon thelocation-based access control information.

One or more of the following features may also be included. The one ormore features loaded may include one or more configuration files and/orone or more network priorities. The location-based access controlinformation may be dependent, at least in part, upon a transmissionmedium type (e.g., a cable-based transmission medium and/or a wirelesstransmission medium). The location-based access control information maybe dependent, at least in part, upon a physical location of the datarelay device. The data may include a computer file.

In another implementation, a computer program product resides on acomputer readable medium and has a plurality of instructions storedthereon. When executed by a processor, the instructions cause theprocessor to perform operations that include providing data thatincludes location-based access control information concerning a datarelay device located within a network infrastructure. The data relaydevice is loaded with one or more features, such that the one or morefeatures loaded are dependent, at least in part, upon the location-basedaccess control information.

One or more of the following features may also be included. The one ormore features loaded may include one or more configuration files and/orone or more network priorities. The location-based access controlinformation may be dependent, at least in part, upon a transmissionmedium type (e.g., a cable-based transmission medium and/or a wirelesstransmission medium). The location-based access control information maybe dependent, at least in part, upon a physical location of the datarelay device. The data may include a computer file.

The details of one or more examples related to the implementations areset forth in the accompanying drawings and the description below. Otherfeatures, objects, and advantages of the implementations may be apparentfrom the description and drawings, and from the claims.

DESCRIPTION OF DRAWINGS

FIG. 1 is a block diagram of an example system with locationinformation;

FIG. 2 is a block diagram of an illustrative process employing locationinformation;

FIG. 3 is a block diagram of another illustrative process employinglocation information;

FIG. 4 is a block diagram of another illustrative process employinglocation information;

FIG. 5 is a block diagram of another illustrative process employinglocation information;

FIG. 6 is a block diagram of another illustrative process employinglocation information;

FIG. 7 is a block diagram of another illustrative process employinglocation information; and

FIG. 8 is a block diagram of another example system with locationinformation.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION

1.0 Overview (FIG. 1)

Referring to FIG. 1, a location-aware system 100 operates and providesnetwork-based services to users according to locations of devices thatuse or are part of the network associated with system 100. System 100includes an infrastructure 101 that includes multiple switching devices,some of which are connected to connection points (e.g., 160 a-i) ofinfrastructure 101. System 100 employs both hardware and software (e.g.,an application executing on server 134) to provide location-awareservices described below. A location of a device can relate to thephysical location of the device, which can be characterized in a varietyof ways including as grid or map coordinates (e.g., latitude, longitude,and elevation), a geographic region, or in terms of building structures,such as coordinates on a particular floor in a building or a room numberin a building. A device can be external to infrastructure 101 of system100, such as user devices 104 a and 104 b. A device also can be internalto infrastructure 101, such as network entry devices 114 a-b (sometimesreferred to as switches or edge devices of the network), and a centralswitching device 136 (e.g. a router). The network entry devices 114 caninclude and/or be associated with wireless access points 120 a-b. Thewireless access points 120 can be individual devices external to thenetwork entry device 114, such as 120 a and/or internal to the entrydevice 114, such as 120 b.

Some of the devices internal and external to infrastructure 101 includea location module 185. The location module 185 includes functionality,as described in more detail below, that makes a device location-aware.In one example, this functionality includes a location database to storelocation information, protocol to communicate location information toother devices, and rules to enforce location-based policies (e.g., toenable policing based on location information). This functionality canalso include the algorithms and processes necessary to determine thelocation of a device using the techniques described herein. Locationmodule 185 can be implemented in the hardware and/or software of system100. For example, particular software applications executing on thedevices can provide/enforce the location functions, the operating systemof any of the devices can provide/enforce the location functions, and/orhardware modules, such as programmable arrays, can be used in thedevices to provide/enforce the location functions.

To make use of a device's location, system 100 first determines thelocation of that device. System 100 uses different techniques todetermine the location of a device depending on whether the devicecommunicates with other devices using a cable-based transmission medium112, or a wireless transmission medium 119. Cable-based transmissionmedium 112 refers to a constrained transmission medium such as anoptical cable, an electrical wire, and the like. Such a cabletransmission medium can provide single to many connections (shared)and/or a point-to-point (dedicated) connection between two devices. Acable-based medium 112 can be considered as part of infrastructure 101of system 100. Typically the medium 112 is installed in such a way thatit is not easy to modify the medium's physical location. For instance,cables are lead through walls and conduits in such a way that theconnection points (e.g., the jacks) are in fixed locations. Wirelesstransmission medium 119 refers to a transmission medium in a free space,such as though free air. Wireless transmission medium 119 generallyrelates to any communication where the transmission medium is air, forexample, radio-based communication. For instance, radio communicationaccording to the IEEE 802.11 standard uses a wireless transmissionmedium 119. Other wireless communication using wireless transmissionmedia relate to use of optical communication (e.g., infra red, lasers,and the like) and/or other communications through air such as acousticand mechanical waves. Wireless media are characterized by a much greaterrange of possible locations in which communicating devices may belocated. For example, in the case of an IEEE 802.11 based network, amobile device may be able to communicate with a wireless access point120 hundreds or even thousands of feet away depending on theenvironment.

In the illustrated system 100 of FIG. 1, user device 104 a connects toinfrastructure 101 using cable 112 through connection point 160 a (e.g.,a jack in a wall). Similarly, network entry devices 114 a-b and centralswitching device 136 connect to each other using a cable to connectionpoints 160 b-g. In a portion of a data network employing cables, aconnection point (e.g., 160 a-g) is the terminus of the cable where adevice physically attaches. A connection port (e.g., 113) is thephysical port through which a network client communicates.

As described above, the connection points associated with a cable aregenerally fixed in location. The locations of these connection pointsare determined, for example, when the cable is installed. Locationinformation includes an association of a connection point with itscorresponding location. System 100 stores the location information inlocation module 185. The location module 185 can store the locationinformation using a location database. In an example of a centralizedapproach, system 100 stores the location information for all of theconnection points of the network of system 100 in location module 185 ain location server 134. In an example of a distributed approach,described in more detail in the alternatives section below, system 100stores the location information for all of the connection points, or aportion of the connection points, in each of the location modules 185a-d. In one approach to determining the location of a device, system 100determines the connection point (e.g., 160 a-g) through which the deviceis connected to network infrastructure 101 and finds the stored locationinformation in location module 185 corresponding to that particularconnection point.

A device using wireless transmission medium 119 connects toinfrastructure 101 through connection points 160 h-i, for examplecommunicating from the device's transceiver to the wireless accesspoints 120 a-b of network entry devices 114 a-b, respectively. Thesewireless connection points 160 h-i, similar to connection points 160a-g, are also generally fixed in location. The location of a user device104 connected to a wireless connection point 160 h-i, however, can bedynamic. The location of user device 104 b changes as user device 104 bmoves. Stationary wireless connection points 160 h-i may no longer be incommunication with user device 104 b as user device 104 b moves away,thus no longer being connection points for 104 b after a certain periodof time.

In one approach to determining a location of a device using wirelesstransmission medium 119, system 100 determines the location of userdevice 104 b relative to typically multiple network devices (e.g., 120 aand 120 b) that receive transmitted signals from user device 104 b.System 100 uses signal characteristics, such as relative time delay orsignal strength of the signal received at the different network devicesin combination with the known location of the wireless access points 120a-b. System 100 optionally uses other known boundaries, for examplewalls within a building, to further limit the location of an area,relative to the wireless connection point (e.g., 120 a or 120 b), withinwhich that user device 104 is operating. System 100 stores the locationinformation corresponding to wireless user device 104 b in associationwith one or more of the connection points 160 h-i in location module 185(e.g., 185 a in an example of a centralized approach). The system 100updates the corresponding location information as user device 104 bmoves.

Having determined the location of a device, system 100 employs thatlocation information in a variety of ways. System 100 can provision andconfigure devices within infrastructure 101 or external toinfrastructure 101 according to their locations as devices are added ormoved. This enables a network device, in an automated fashion, to learnof its location and based on its location, configure itself, operate ina certain manner and enforce certain location-based rules. For example,network entry device 114 a can be replaced with a new network entrydevice that, once connected, learns its location, and its configurationand rules of operation based on that location, in an automated fashionfrom location server 134.

System 100 is able to enforce certain restrictions, on an initial andcontinual basis, based on locations of devices. System 100 can restrictaccess to the network or data stored on the network based on thelocation of user device 104. For example, system 100 restricts access toaccounting databases to only user devices 104 located within theaccounting department offices (e.g., within certain coordinates of acertain floor of a certain building). Further, system 100 can alsoperiodically and/or continually police these restrictions so that a userdevice 104 cannot authenticate based on being in one location, and thentry to access restricted services at another unauthorized location basedon that authentication. Location can also be another parameter, forinstance in addition to a user identification or a device type, that isused for allocation of network resources, such as speed and quality ofservice (QoS).

System 100 also restricts flow of data through infrastructure 101 basedon location restrictions of that data. For example, the system 100 canrestrict data from the accounting databases to stay within theaccounting department offices (e.g., an area defined by certaincoordinates). In one approach to implement such restrictions, the datahas a tag that contains the location restrictions (e.g., permittedand/or prohibited locations). For example, the application generatingthe data and/or the server generating a data packet to transport thedata over the network can add this tag while generating the data and/orpacket. Devices and applications within system 100 enforce thoserestrictions by not allowing the data to be routed to a device outsideof the permitted location, by destroying the data if it is in a locationoutside of the permitted location, and/or denying access to (e.g.,reading, opening) the data outside a permitted location.

System 100 is also able to provide other services and applications thatemploy the location information. For example, system 100 can use thelocation information in emergency situations, where a device may be analarm or sensor. System 100 determines the location of the alarm deviceand transmits the location information to a party responding to thealarm. System 100 can also use location information to recover a stolenuser device 104. As the stolen user device 104 accesses the network,system 100 determines the location of the stolen device and transmitsthe location information to a party seeking to locate the device. System100 can track mobile user devices (e.g., 104 b) and thus can also trackanything associated with that user device (e.g., the user, a file, aphysical object, and the like). System 100, through the use of locationinformation, can provide these and other services and applications. Thesections below provide more detailed examples of the devices andtechniques described in the above overview.

2.0 Locating Devices Overview (FIGS. 1, 2, and 3)

In determining the location of a device, system 100 employs one or moreof a number of mechanisms/techniques so that location information can beverified and trusted by system 100. One general characteristic of thesemechanisms is that devices or applications within infrastructure 101 donot necessarily trust devices outside infrastructure 101, even if thoseoutside devices declare that they are at certain locations. That is, thedetermination of the location of a device is preferably based oninformation that is obtained directly by system 100 using networkinfrastructure 101, rather than supplied by a device itself. System 100uses various approaches to obtain information to use when determiningthe location of a device communicating with the network, with somespecific approaches being applicable to cable-based or wirelesstransmission media.

In general overview, for wireless devices (e.g., devices communicatingvia a wireless transmission medium), system 100 maintains informationthat is used to locate the devices based on the characteristics ofwireless communication between typically multiple devices (e.g., 120 aand 120 b) in network infrastructure 101 and a wireless user device(e.g., 104 b). Generally this approach is referred to as triangulation,with the understanding that this includes all varieties of remotelocation determination and approximation including those based onvariations in time delay, signal strength, and directionality of signalsbased on the location of a wireless device, and including bothanalytical or model-based approaches as well as approaches that arebased on prior measurement and recording of transmission and propagationcharacteristics at various locations.

For devices connected via cable, system 100 maintains information thatcharacterizes the locations of the cable connection points, for examplein a location database stored in location module 185. Such a database ispopulated and maintained in a variety of ways. For example, once networkinfrastructure 101 has been physically arranged, a survey of all thecable connection points can be undertaken to record the physicallocation corresponding to each cable connection point 160 and itscorresponding connection port in network infrastructure 101. Then, as adevice or the network infrastructure identifies a cable connection point160 to which the device is connected, system 100 uses the locationdatabase to determine the location corresponding to the identifiedconnection point. The connection points are identified using a uniqueconnection point ID. The value of the connection point ID can be, forexample, a number, a text string, or a combination of infrastructurepertinent information.

After determining the location of a device using one of thesetechniques, in one example system 100 maintains the location informationcentrally on the location server 134 in the location database inlocation module 185 a. In the case of wireless devices, system 100dynamically modifies the location of the device stored in the locationdatabase as the device moves. System 100 can track the user deviceitself, and/or the closest network entry device (e.g., 114) throughwhich the wireless user device communicates. With the devices thatcommunicate via a cable, system 100 updates the location database if andwhen a device is moved from one cable connection point (e.g., wall jack)to another. The devices communicate the location information to eachother using a protocol using layer 2 (the data-link layer) or layer 3(the network layer) of the Open Systems Interconnection (OSI)communication model. For example, the devices communicate with eachother using IP version 4. Other layers and protocols can also be used.Additional and alternative mechanisms for locating devices are describedfurther below in the alternatives section.

2.1 Techniques for Determining Location of Connection Points (FIG. 1)

Following below are examples of more detailed mechanisms/techniques todetermine the location of the connection points, thus determining thelocation of the devices employing those connection points. The detaileddescriptions of various mechanisms are divided into those mechanismsmost applicable to wireless connections (i.e., connections using awireless transmission medium) and those mechanisms most applicable tocable connections (i.e., connections using a cable-based transmissionmedium), although in general, mechanisms may be applicable to both typesof connections. There can be examples when the mechanisms can beapplicable to other types of connections (e.g., mechanisms for cableconnections can be applicable for wireless connections).

2.1.1 Wireless Connections (FIG. 1)

Referring now to some detailed techniques for wireless connections, asdescribed above, two example types of wireless communication chosen toillustrate these techniques are via radio frequencies or infraredfrequencies. System 100 can employ different mechanisms for each ofthese types of communication. System 100 can employ a first group ofmechanisms/techniques for identifying the location of a device (e.g.,104, 114) that communicates via radio frequencies. For example, system100 triangulates the location of a device using one or more wirelessaccess points, such as 120 a-b, associated with network entry devices114, such as 114 a and 114 b, respectively, as shown in FIG. 1. Asanother example, system 100 determines a device's location based on theproximity to an entry device. Following below is a listing of varioustechniques system 100 can employ to determine the location of a wirelessdevice.

System 100 can employ a number of known triangulation techniques,including the use of signal strength, angle of arrival, and relativetime delay approaches. System 100 can employ off-frequency searching,such as by frequency hopping for short periods of time to detectstations on frequencies alternate to that employed for data exchange.For example, wireless access point 120 a can operate at a firstfrequency f1. Wireless access point 120 b can operate at a secondfrequency f2. Periodically, and for a relatively short period of time,wireless access point 120 a operates at the second frequency f2 todetect and determine signal characteristics of a device communicatingwith wireless access point 120 b. Similarly, wireless access point 120 bperiodically and for a relatively short period of time operates at thefirst frequency f1 to detect and determine signal characteristics of adevice communicating with wireless access point 120 a.

System 100 can employ phased-array searches for lobe-basedtriangulation. That is, a radio antenna of the network entry device isdirected to maximize or at least optimize lobe location as a searchbeacon. Such lobeing or lobe steering may be a staged process in whichnetwork entry devices 114 make broad sweeps to get rough locationinformation, which may be sufficient in some situations. Network entrydevices 114 can fine-tune the sweeps, if desired, with narrower lobes,to get a more accurate location. System 100 also can conductphased-array antenna searches at off-frequency conditions (e.g.,frequency hopping combined with directional searching).

System 100 can perform calculations to approximate distance from a knownaccess point (e.g., 120 a-b) as a function of signal strengthattenuation (e.g., the signal is at x strength so the device must belocated in a range of y-z feet away). In addition to calculations,system 100 can also search stored associations of signal characteristicsand their corresponding locations. This information can be stored in asignal characteristic database. A network administrator generates thissignal characteristic database by measuring predefined signalcharacteristics at different locations and storing the measuredcharacteristics for each of the locations. When subsequently determininga location of a user device, if system 100 detects a signalcharacteristic identically corresponding to a location, system 100determines that the user device is at that corresponding location. Ifthe signal characteristic is not identical, system 100 can use multipleentries within the database to extrapolate the user device locationinformation based on the stored signal characteristic and locationassociations. This technique is sometimes referred to as RF training.

Using multiple frequencies and/or connection-points and/or antennas mayimprove the accuracy of location derivation techniques. For example, ifthe same access point is used at different frequencies, system 100 canuse the error in location information among the different frequencies toinfer location more accurately. In addition, the use of multiple accesspoints (e.g., signals from user device 104 b received at 120 a comparedwith signals received at 120 b) may improve relative location accuracyin a type of triangulation or averaging of signal strength indicators.System 100 can employ multiple antennas for that purpose. Multipleantennas (not shown) may also be used to assert a line of bearing. Inthat case, the relative separation of the antennas and the accuracy ofthe known spacing both may provide improved location accuracy. System100 also can employ ultra wide band waves to determine relative locationof one or more devices. As the accuracy of the location derivationincreases by using these improved techniques, system 100 can assign ahigher value for the level of trust parameter associated with thatlocation.

System 100 also can use signal amplitude differential from the networkentry devices 114 a and 114 b to determine relative location of userdevice 104 b with respect to an antenna on network device 114 a or 114b. System 100 can combine techniques, such as using signal amplitudedifferential combined with the phase differential techniques describedabove to determine location. The location techniques described are notlimited to any specific type of antenna technology. System 100 canemploy an antenna associated with a wireless access point 120, or anantenna associated with a stand-alone device, including, but not limitedto, a personal digital assistant or a laptop computer, designed to relayinformation to a network-related device employed to calculate relativelocation from received data. One or more antennas can be deployed in oneor more wireless access points 120. System 100 can also vary and limitthe transmission strength of the wireless access points 120, so thatsystem 100 can determine and control a radius of relative location basedon the radius of operation due to the limited transmission strength.This relative location can be further limited from the radius ofoperation by other physical barriers such as walls and non-accessiblelocations within the radius of operation.

System 100 also can employ a second group of mechanisms for identifyingthe location of a wireless device (e.g., 104, 114) that communicates viaoptical technology, such as infrared light waves and lasers. Morespecifically, the use of an infrared transmitter and receiver can limitthe actual distance user device 104 b can be from a network entry device114 a or 114 b, similar to the limited transmission strength above.Thus, system 100 determines a relative position of user device 104 busing that maximum distance limit as a radial boundary from networkentry device 114 a or 114 b. Further, a line-of-site requirement forinfrared can limit the boundaries further, although reflective devicescan be used to alter such limitations. As described above, system 100can use physical barriers, such as walls, to limit the determinedboundaries of the allowable locations of the infrared device.

System 100 uses the techniques above for radio and infraredcommunications to determine the location of a wireless device. Asdescribed in more detail below, system 100 may use the above techniquesto determine the absolute location of wireless user device 104 b itself,or use the above techniques to determine a relative location,determining whether wireless user device 104 b is closer to wirelessaccess point 120 a or 120 b and using other known parameters, such astransmitter strength and physical barriers. The location informationgathered by system 100 (e.g., via access points 120 a and 120 b) usingthe above techniques may be considered trusted information if thenetwork-controlled devices (e.g., access points 120 a and 120 b)collecting the information are trustworthy. The devices are consideredtrustworthy if, for example, they are part of infrastructure 101 andcannot be accessed, moved, and/or modified by anyone except authorizednetwork administrators. Instead of receiving a location from a wirelessdevice and relying on that received information as accurate, system 100verifies the location of a device itself using one or more of the abovetechniques. Determining location information for an authenticated userby trustworthy devices (e.g., a device within infrastructure 101 thatcannot be altered) enables system 100 to assign to the locationinformation a higher value for the level of trust and enables greatersecurity in the permitted access to system 100 as described in moredetail below.

2.1.2 Cable Connections (FIG. 1)

Referring now to some detailed techniques/mechanisms to determine alocation of a device using cable connections, system 100 can searchlocations of connection points previously stored in a location databaseand/or system 100 can use characteristics of signal propagation througha cable-based transmission medium. In one example, system 100 searches alocation database to find the location of a connection point to which adevice is connected. The database is located in location module 185 oflocation server 134. As described below, system 100 assigns a uniqueidentifier to each connection point 160. When a device connects tosystem 100, system 100 determines the unique identifier of the cableconnection point to which that device is connected. System 100 searchesthe location database to find the connection point with that uniqueidentifier and uses the location that corresponds to that connectionpoint. To use this technique, the location database is populated whenthe cable connection points are installed and/or when the connectionpoints are first used.

The process to generate the database can be manual and/or automated. Inan example of a manual process, a network administrator enters theunique identifier for each connection point and its correspondinglocation in the location database. For example, the networkadministrator uses a map (e.g., floor plan, office layout, and the like)to determine the location information of each of the installedconnection points. The location information obtained from the map andentered into the location database can include coordinates of theconnection point (e.g., lat 42°, long 48°), a string description of theconnection point (e.g., room ten, first floor, building one) and thelike.

In an example of an automated process, system 100 uses user device 104with its own location determining system (e.g., GPS) to provide system100 with location information as user device 104 is connected at eachconnection point 160. The system 100 can employ a trusted user device(e.g., a user device with no/low probability of providing false locationinformation or always under control of a network administrator) or anuntrusted user device (e.g., a device not under the control of thenetwork administrator).

With an untrusted user device, system 100 can attempt to independentlyverify the location information received from the untrusted device. Forexample, if the untrusted device can use both cable-based and wirelesstransmission media (e.g., a laptop with a network card and a wirelesstransmitter or infrared port), system 100 can use one or more of thewireless techniques above to verify the location of the device while thedevice communicates using a cable connection point. System 100 can alsouse one or more of the signal characteristic techniques below to verifythe location of the device while the device communicates using a cableconnection point.

With a trusted user device with its own location determining system, assystem 100 determines the connection point to which the trusted userdevice is connected and receives the location determined by that trusteduser device, the system 100 adds an association of the connection pointand its corresponding location to the location database. When thetrusted user device connects to additional connection points, system 100populates the location database further until all connection points havecorresponding locations. In the association, system 100 can use a uniqueidentifier to identify each of the connection points.

In another example of an automated process, system 100 employs a trusteduser device 104 with its own location determining system that can workin the absence of GPS data. System 100 employs a user device withstandards-based LAN connectivity capabilities. The user device iscapable of determining an absolute 3-dimensional position via GPS andalso has the capability, likely via an inertial navigation system, todetermine its absolute position in the absence of GPS data. An inertialnavigation system may be preferred because the GPS uses very low powertransmissions from the satellites and reception indoors or even outdoorsin heavily developed areas may be poor or non-existent. If system 100provides a start or reference position to an inertial-based system, thatsystem can maintain very accurate 3-dimensional location datum with noexternal information. In addition to the starting position, system 100can provide a security feature to the user device to ensure that itslocation information is trustworthy. This can include, for example, keysand laser techniques. The user device calculates absolute positioninformation, and has the capability to format that information for IPtransport over a LAN via its LAN interface. An operator can go to a portproviding access to the LAN, connect the trusted user device to thatport, and command that the current location information derived by theuser device be sent to the location database in the location server 134.Upon receipt of that information, system 100 updates the locationinformation in its location database for that connection point.

In another example, as described in more detail in the alternativessection, a trusted third party can act as an agent to provide thelocation of connection point 160 a. For example, if the connection point160 is a telephone jack in a user's home, the corresponding telephonenumber can be used as a connection point ID. The telephone company canact as a trusted agent and provide a location (e.g., residentialaddress) of that connection point. System 100 assigns a value for thelevel of trust parameter associated with that location information basedon the trustworthiness of the source, as described below. The moresystem 100 trusts the third party agent, for example the phone company,the higher level of trust system 100 associates with the providedlocation information.

As an alternative or in addition to the predefined database, system 100can use characteristics of signal propagation through a cable-basedtransmission medium to determine the location of a device. Morespecifically, system 100 can use a characteristic of a signal thatvaries with the length of the cable-based transmission medium (e.g.,time delay, time-domain reflectometry (TDR) techniques, signalattenuations, round-trip delay and the like) to determine the length ofcable through which the signal is traveling. For a connection point,system 100 measures the particular signal characteristic and based onthat measurement, system 100 determines the length of the cable. Asdescribed above for wireless connections, system 100 employs a lookuptable, database, and/or function that relates the characteristicmeasurement to a location for cable connections also. Data for thesignal characteristics (e.g., round-trip training for cable-based media)can be performed at the same time connection points 160 are being mappedwith a trusted GPS, as described above, so that location is not basedsolely on estimating delay.

For example, a signal characteristic database contains the associationthat a measured time delay of a signal corresponds to a specific lengthof cable from the network entry device 114 a. System 100 determines arelative position of user device 104 a using that determined cablelength as a maximum distance from connection point 160 a by accountingfor (e.g., subtracting) the length of cable 112 included in theinfrastructure. Further, as described above, system 100 can use physicalbarriers, such as cable runs and walls, to limit the determinedboundaries of the allowable locations of the user device 104 a. Thistechnique is useful in determining whether user device 104 a isconnected to connection point 160 a using a long length of cable, thusallowing user device 104 a to be located a substantial distance awayfrom the connection point 160 a (e.g., in a different, and perhapsunauthorized, room). For example, system 100 determines, using signalcharacteristics as described above that there is 10 feet of cablebetween user device 104 a and network entry device 114 a. System 100 hasinformation that the cable length from connection point 160 a to 114 ais 7 feet and is fixed (i.e., runs through a wall and cannot bemodified). Using this combined information, system 100 determines thatthe length of cable from connection point 160 a to user device 104 a is3 feet and so the user device 104 a is confined to the room in whichconnection point 160 a is located.

The use of signal characteristics also enables system 100 to determinewhich connection point a user device 104 is connected to for cables withmultiple connection points (e.g., 104 i and 104 j, FIG. 8). For example,system 100 can use a calculated cable length to determine which of theconnection points user device is within the range of the cable length.Once a connection point is identified, system 100 can obtain itslocation via the location database and then determine the location ofthe user device 104. It may be the case that system 100 identifiesmultiple connection points within the range of the cable length. It someinstances, this may still be enough to authenticate the location, asdescribed in more detail below. For example, the cable length mayindicate that the user device is connected to one of the connectionpoints in conference rooms 1-5 on the second floor. All of theconferences rooms, however, are in permitted locations for the requestednetwork resources, so this granularity and precision is acceptable forauthentication in this case.

2.2 Location Information Database (FIG. 1)

As described above for both wireless and cable-based transmission media,system 100 maintains and updates the location information associatedwith the connection points (e.g., 160 a-i) of the system 100 in alocation database. The information included in the location database canvary. For example, Table 1 is a table containing the type of informationthat can be included in the location database. As illustrated in Table1, each row represents an association between a connection point and itscorresponding location in one or more formats. The “Connection Point ID”column contains the unique identifier associated with a particularconnection point. The connection point ID can be any ID that uniquelyidentifies a connection point. As described in more detail below andillustrated in Table 1, in one example the combination of a device MediaAccess Control (MAC) address (e.g., 00001d000001) and a port MAC addresswithin the device (e.g., 00001d000101) determines the connection pointID. The locations contained in Table 1 are included in two format typesfor each connection point ID. The first type is an American NationalStandards Institute (ANSI) Location Identification Number (LIN) and thesecond type is a coordinate of latitude and longitude. (Some additionalexample formats system 100 can employ are described in the alternativessection below.)

The location information of Table 1 additionally includes the optionalparameters “Level of Trust” and “Device ID”. The level of trust, asexplained in more detail below, is a parameter with a value in apredefined range, where the range represents the trustworthiness of thelocation reference. The level of trust generally corresponds with thetrustworthiness of the source providing the location of the connectionpoint. A higher level of trust value represents a higher level ofconfidence that the location reference is accurate, reliable and hasneither been altered or generated falsely to gain normally unauthorizedaccess. The device ID uniquely identifies the device that is connectedto the connection point. The device ID information enables system 100 tostore a map of the physical locations of all the network devices (e.g.,104, 114, 136). This is beneficial if there are devices associated withsystem 100 that are not configured to acquire and/or store theirlocation information. System 100 can use this corresponding deviceinformation to enable location server 134 to transmit locationinformation to a location-aware application since the device cannottransmit the location information itself. IN other words, system 100 canact as a third-party verifier for applications requiring verifiedlocation information. Table 1 can include other information in additionor as an alternative to the device ID. For example, Table 1 can includeMAC address, address, phone number, protocol type, asset ID, ownerand/or the like. TABLE 1 Location Location Location Location Level ofConnection Point ID ID Type Reference ID Type Ref. Trust Device ID00001d000001:00001d000101 ANSI LIN xxxxxxxxxx1 Lat-Long x1° by y1° 2,256Model: ABC 00001d000001:00001d000102 ANSI LIN xxxxxxxxxx2 Lat-Long x2°by y2° 2,256 S/N: 1233 00001d000001:00001d000103 ANSI LIN xxxxxxxxxx3Lat-Long x3° by y3° 2,256 GUID: A82C 00001d000001:00001d000104 ANSI LINxxxxxxxxxx4 Lat-Long x4° by y4° 2,256 00001d000001:00001d000105 ANSI LINxxxxxxxxxx5 Lat-Long x5° by y5° 2,256 00001d000001:00001d000106 ANSI LINxxxxxxxxxx6 Lat-Long x6° by y6° 2,256 00001d000001:00001d000107 ANSI LINxxxxxxxxxx7 Lat-Long x7° by y7° 2,256 00001d000001:00001d000108 ANSI LINxxxxxxxxxx8 Lat-Long x8° by y8° 2,256 00001d000001:00001d000109 ANSI LINxxxxxxxxxx9 Lat-Long x9° by y9° 2,256 00001d000001:00001d000110 ANSI LINxxxxxxxxx10 Lat-Long x10° by y10° 2,2562.3 Specific Examples of Locating Devices (FIGS. 1, 2, 3, and 8)

As described above, once the location database is established, system100 can provide the location information to a device when that deviceconnects to a connection point. This can include providing locationinformation to devices outside of infrastructure 101 as well as deviceswithin infrastructure 101. FIGS. 2 and 3 illustrate additional examplesof system 100 locating devices. FIG. 2 broadly illustrates the stepssystem 100 performs, from discovering a device's connection to system100 to allowing the device access to the network. FIG. 3 illustratesmore specifically the steps system 100 performs to determine thelocation of the discovered device. In other words, FIG. 3 shows aportion of the steps of FIG. 2 in more detail.

FIG. 2 broadly illustrates an example of a sequence of steps system 100performs, from discovering a device's connection to system 100 toallowing the device access to the network. Referring to the examplelocation identification process 201 of FIG. 2, system 100 activates orotherwise discovers (step 210) a device destined for a networkassociation, or a device already network associated. System 100 queries(step 215) the device for location information. That locationinformation may be of absolute or relative type. If location informationdoes not exist, system 100 queries (step 220) whether the device canidentify its own location. If the location information does exist, orthe device can provide a trustworthy location, system 100 establishes(step 230) the device location information. A location is trustworthy,for example, if the system 100 assigns a level of trust value for thatlocation that is above a predefined threshold. The predefined thresholdcan vary depending on the network resources that the device requests.For example, sensitive information and applications require a muchhigher threshold than access to public information.

If the device cannot provide its own location information, or thelocation information is not associated with a level of trust acceptableto system 100 for the particular transaction requested, the locationinformation is determined (step 225) independently of the device, bysystem 100 itself or a trusted third party agent. After determining(step 225) a trustworthy location, system 100 establishes (step 230) thedevice location information.

Whether system 100 can trust the location information from a device(e.g., associate a high enough level of trust value with the location)can depend on the source of that location information. For example, ifthe location information came from a secure device within infrastructure101 not vulnerable to modification, system 100 can trust the locationinformation and assign a the location information a high level of trustvalue. If the location information came from a GPS and/or has beenverified by a third party certificate with security features allowingfor a low level of probability of providing a false location, system 100can trust the location information, but with a lower level of trustvalue than if the location information came from system 100 itself. Therange of level of trust values is described in more detail in therestricting access section below.

In one example where system 100 determines (step 225) the location of adevice, thus assigning a high level of trust value to that location, thedevice receives connection information from a network entry device(e.g., 114 a, 114 b). The connection information includes informationthat the network entry device has, such as a network entry deviceidentifier and a port number of the network entry device to which theconnection point is connected. The device transmits the receivedconnection information, or a portion thereof, to system 100, or morespecifically, to a portion of the network maintaining the locationinformation database (e.g., location server 134). Using the receivedinformation (e.g., network entry device identifier and port number),location server 134 determines the connection point to which the deviceis connected. Referring to the unique identifier of that connectionpoint, which in one example could be the combination of the networkdevice identifier and port number, location server 134 retrieves thelocation associated with that connection point. Location server 134transmits to the device the location information associated with theconnection point.

Continuing with process 201, system 100 optionally confirms (step 235) apredefined list of additional parameters, either through a databasesearch or a table update. System 100 may employ that predefined list ofparameters to define network access as described below. The predefinedlist of parameters may include, but is not limited to, the device portnumber of the connection, traffic activity and link information, MACaddress, IP address, a timestamp, and activity staleness. Uponsatisfaction by system 100 that the appropriate predefined list ofparameters and device location information has been gathered (step 235),system 100 permits (step 240) network access. As described below, thelocation information may be used as a supplement to existing networkusage control means, such as NOS, RADIUS, IEEE 802.1X, IEEE 802.1Q,firewalls, and QoS mechanisms. Further, system 100 continually policesagainst these mechanisms to ensure that network usage does not go beyondthe bounds set by parameters defined within these mechanisms, includinglocation restrictions for devices and/or data.

In general, in alternative sequences of steps, system 100 establishes adevice location and a level of trust of that established location basedon a combination of multiple inputs, including location informationincluded in the device itself (e.g., step 215), location informationidentified by the device (e.g., step 220), and location informationgathered independently of the device (e.g., step 225), withoutnecessarily following the sequence shown in FIG. 2.

In addition, FIG. 2 shows a single sequence of steps to determine alocation of a device and to act on that determined location. In general,this process, and other processes involving determining or verifyingdevice locations that are described below, may be repeated while thedevice is connected to the network for any of a number of reason ofinterest to the network admin that re-determining location is required,including in the event of a detected attack, when new information aboutthe device's location becomes available, periodically, or based on aninternal or external network events or other matters of network policy.This repetition of the process provides an ongoing policing function.For example, such a policing function can be used so that a devicecannot be established at one physical location, and then moved toanother physical location where its privileges may be different.

As introduced above, a wide variety of events may initiate the processof determining and validating the location of a device. These caninclude, but are not limited to: a timer expiring, a communication linkbeing broken, a communication session terminating, a change in a user'scredential, triggering of a firewall alarm, a new network device joiningthe network, prompting by a management station, particular movement of adevice is detected, a shadow (users or devices of network) device isdetected.

Referring to FIG. 3, example process 300 illustrates the steps system100 performs to determine the location of the discovered device. Forclarity and example only, some portions of example process 300 refer toa location server and a location client. A location server refers to adevice of system 100 comprising functionality in location module 185that enables that device to provide location information to anothernetwork device. This can include hardware and/or software applicationsfor the storage of location information parameters, access to thestorage devices containing values for parameters, algorithms andprocesses to determine the location of a device and other likefunctionality. Additionally, location module 185 of a location servermay be further configured to provision operational configurationparameters based on the location of the network-attached device, asillustrated in the optional steps of FIG. 3. A location client refers tothe device for which the location server is trying to determinelocation. The network entity of FIG. 3 represents an intermediary devicethat includes the access port through which the location clientcommunicates.

Referring to FIG. 1, for an example where the location client is userdevice 104 a, the network entity of FIG. 3 is the network entry device114 a, which has connection port 113 through which the user device 104 acommunicates. For an example where the location client is network entrydevice 114 a, the network entity of FIG. 3 is the switching device 136,which has the connection port 165 through which device 114 acommunicates. As these two examples illustrate, network entry device 114a can act as both a location client and an intermediary device. In adistributed example described in the alternatives section below, networkentry device 114 a also can act as a location server, thus combining thenetwork entity and the location server of FIG. 3 into a single device.

Referring to process 300, the network entity (e.g., 114 a) transmits(step 305) connection information (e.g., in the form of data packets) tothe location client (e.g., 104 a) that allows for the detection of aunique connection point ID. This connection information can representthe port to which the connection point is physically connected. Theconnection information can be in a format compliant with many differentprotocols. The location client receives (step 310) the connectioninformation and determines (step 315) a connection point ID. Forexample, the location client can extract the connection point ID fromone of the example packet types.

For illustration, a specific example employs IEEE Spanning Tree BridgeProtocol Data Unit (BPDU). In an IEEE 802.1 D Spanning Tree BPDUexample, every switch port with spanning tree enabled will forward (step305) a BPDU at regular intervals. A BPDU comprises the followinginformation: (i) the primary MAC Address of the transmitting switch(bridge ID); (ii) the identifier of the transmitting port (the MACaddress of the switch port sending the BPDU); (iii) the unique bridge IDof the switch that the transmitting switch believes to be the rootswitch; and (iv) the cost of the path to the root from the transmittingport. The location client receives (step 310) the IEEE spanning treeBPDU and decodes the unique bridge ID and transmitting port ID as itsconnection point ID. Using that decoded information, the location clientdetermines (step 315) that the connection point ID={Bridge ID MACAddress}+{Transmitting Port ID MAC Address}. Alternatively, the locationclient forwards these received parameters to the location server and thelocation server generates the connection point ID by combining theapplicable parameters, as described in FIG. 2.

It can be seen that this approach may be applied to other discoveryprotocols and techniques, with modification dependent upon specificprotocol formatting. Also, system 100 can employ other uniqueidentifiers. For example and referring to FIG. 8, for user device 104 h,which is connected to system 100′ through a telephone network 132,system 100′ can employ a phone number to uniquely identify theconnection point 160 k (e.g., phone jack) to which the user device 104 his connected. Similarly, user device 104 g can be a personal computerconnected to Internet 148 via a cable modem that has been assigned aunique IP address. System 100′ can employ this unique address, alone orin combination with an ISP identifier, to uniquely identify theconnection point 1601 (e.g., a jack or the end of a cable for a cablemodem) associated with user device 104 g.

In process 300, the location client transmits (step 320) the connectionpoint ID to the location server. The location server determines (step325) location information for the location client based on theconnection point ID. The location information can be defined in alocation database within the location server as described above ordiscovered from the network infrastructure 101′ using the techniquesdescribed above.

After determining (step 325) the location information, the locationserver transmits (step 330) the location information to the locationclient. If configured to do so, the location client stores (step 335)the location information for future reference. In addition to thelocation, the received data may include a corresponding level of trustvalue associated with the origination of the location information. Thelocation information, and any additional information, may also beprotected with a security feature. For example, the information may beencrypted with a temporary key associated only with the particularconnection point to which the location client is connected.

To determine (step 325) location information, the location serveremploys a location database comprising connection point ID informationand geographic information. An advanced location server can also act asa device registry and can map unique identifiers of the devices (e.g.,104, 114) to their corresponding connection point and geographicinformation, as illustrated in Table 1 above. As illustrated in FIG. 3,the location server can optionally store (step 340) the locationinformation in a storage module on the network entity. In anotherexample, the network entity storage module and the location database canbe the same. Thus, more than just a topology, the location server storesand/or has access to information with the physical locations of themapped devices.

Referring to process 300, the location client counts (step 320) apredefined amount of time to resend (step 320) its connection point IDinformation to the location server periodically to ensure the accuracyof the location information. The location server sends (step 330) thelocation information to the location client after referencing (step 325)the connection point ID that was previously sent by the location client.This periodic verification is one example of system 100 periodicallypolicing location information. Or in other words, periodically verifyingthat the location client has not changed locations.

Also shown in process 300 are the optional steps 350 and 355,representing examples where the location server is expanded to provisionand/or store information other than the location references in thelocation database. In this example, the location server obtains (step350) configuration and/or provisioning information based on theconnection point ID and transmits this additional information to thelocation client. Using this additional information, the location clientcan configure (step 355) itself in accord with this additional data,which is based on location. Similarly, although not shown, the networkentity can also configure itself.

After system 100 authenticates the location information and optionallyconfigures devices based on their location, system 100 continuallypolices the network at the edges of infrastructure 101 to ensure thatpolicies regarding location information are enforced. The steps 365,370, 375, and 380 of process 300 illustrate an example of edge policingby system 100. For example, when the location client requests (step 365)additional resources, the network entity (e.g., in the case of edgepolicing, network entry device 114) verifies (step 370), using any ofthe techniques described herein, that the location client is still atthe same location as when the client was authenticated. If not, thelocation client is forced to repeat the authentication process at thenew location. In response to a request for data, the location server, oranother server and/or application on the network, transmits (step 365)the requested data to the location client via the network entity. Asdescribed in more detail below, the network entity determines whetherthere are any location restrictions on the data. If so, the networkentity enforces (step 380) those location restrictions by, for example,not forwarding the data to the location client if the location client isat a prohibited location. As illustrated, the network entity policesboth incoming requests and outgoing data in accordance with locationbased policies.

3.0 Network Operation Using Device Location (FIGS. 4, 5, 6, and 7)

As illustrated in the optional steps of FIG. 3, once system 100determines the location of a device, system 100 can employ that locationinformation to provide some automated operations. In other words, anetwork that is location-aware enables the utilization of informationstored on a location client and/or in the location database to enhancethe operation of the location-aware network. Because system 100 is ableto learn the connection point to which any device is connected using thetechniques above, system 100 can provide automated management based onthe locations associated with those connection points. The operationsand services that the system 100 provides for automated management basedon location information vary. Some techniques/mechanisms are describedbelow in more detail.

3.1 Provisioning and Configuring

One type of automated mechanisms involves the provisioning andconfiguration of devices as they are added to system 100. When added,system 100 determines the location of the added device and then based onthat location, system 100 determines, for example, what particularconfiguration file should be loaded into the device, what type ofnetwork priorities the device should be assigned, such as bandwidth,latency, QoS and other like network policies. This mechanism enablessystem 100 to enforce any of these policies based on the location ofeach device. The examples that follow illustrate how system 100 canexpand data within the location database to include the provisioningand/or configuration data.

3.1.1 Provisioning/Configuring Examples Using an Expanded LocationDatabase

In one specific example of provisioning, a location server assignslocation information and network specific configurations to Voice overIP (VoIP) handsets. The information is provisioned on the phone andincludes, for example, Virtual LANs (VLANs) ID, traffic prioritizationat layer 2 or layer 3, and an E911 LIN. This simplifies the informationon VoIP phones in branch offices, for example. The provisionedparameters are added to the location information in the locationdatabase of the location server. An expanded location database for VoIPphone environments can include the following information: VLANmembership of the voice entity, layer 2 priority mappings for voicepayload/voice control/non voice traffic, layer 3 class of servicemarkings for voice payload/voice control/non voice traffic, locationclient's network layer address, ANSI LIN numbering, geographic locationinformation including latitude, longitude, altitude and accuracy factor,device microcode file to boot (e.g., bootp server pointer), and/or otherlike parameters. Table 2 is a table containing an example of the type ofinformation that can be included in an expanded location database thatincludes additional provisioning parameters for a VoIP network. Inaddition to the connection point ID and the location reference, thelocation database represented by Table 2 also includes a voice VLAN IDand a voice priority parameter. As described above, the locationdatabase also can include device ID data about a location client. In theVoIP example, these optional device ID parameters can include thehandset extension number, the handset model number, the handset version,the handset network address, and/or the like. TABLE 2 Location LocationVoice Voice Device ID Entry Connection Point ID ID Type Reference VLANID Priority (optional) 1 00001d000001:00001d000101 ANSI LIN xxxxxxxxxx1101 5 extension: 7082 2 00001d000001:00001d000102 ANSI LIN xxxxxxxxxx2101 5 model: 123 3 00001d000001:00001d000103 ANSI LIN xxxxxxxxxx3 101 54 00001d000001:00001d000104 ANSI LIN xxxxxxxxxx4 101 5 500001d000001:00001d000105 ANSI LIN xxxxxxxxxx5 101 5 600001d000001:00001d000106 ANSI LIN xxxxxxxxxx6 101 5 700001d000001:00001d000107 ANSI LIN xxxxxxxxxx7 101 5 800001d000001:00001d000108 ANSI LIN xxxxxxxxxx8 101 5 900001d000001:00001d000109 ANSI LIN xxxxxxxxxx9 101 5 1000001d000001:00001d000110 ANSI LIN xxxxxxxxx10 101 5

In one specific example of configuring, a location server enablesautomated configuration of location clients, such as switches androuters. Often, network switches have to support complex configurations,and that complexity limits the ability of the switch to be moved aroundthe network. If system 100 enables a network switch as a locationclient, it is possible to automate the configuration of the networkswitch. In this example, a network operator enters a wiring closet andsimply plugs in a network switch that only contains its network layeraddress and the network layer address of the location server. After thenetwork switch powers up, it detects (step 310 (FIG. 3)) its location,for example as described above, by analyzing an IEEE Spanning Tree BPDUto determine (step 315 (FIG. 3)) its connection point ID. Once thenetwork switch determines (step 315 (FIG. 3)) its connection point ID,the network switch initiates (step 320) a conversation with locationserver 134. In this example, the location server references (step 350(FIG. 3)) the connection point ID to a location database field whichrepresents the base configuration file of any network switch that mayconnect to the network at that location. Table 3 is a table containingan example of the type of information that can be included in anexpanded location database that includes additional configurationparameters to configure a network switch. In addition to the connectionpoint ID and the location reference, the location database representedby Table 3 also includes a configuration file parameter identifying theconfiguration file to be used to configure a location client at thatcorresponding location. TABLE 3 Location Location Connection Point ID IDType Ref. Configuration file 1 00001d000001:00001d000101 Lat-Long x1° byy1° closet1.cfg 2 00001d000001:00001d000102 Lat-Long x2° by y2°closet2.cfg 3 00001d000001:00001d000103 Lat-Long x3° by y3° closet3.cfg4 00001d000001:00001d000104 Lat-Long x4° by y4° closet4.cfg 500001d000001:00001d000105 Lat-Long x5° by y5° closet1.cfg 600001d000001:00001d000106 Lat-Long x6° by y6° tftp:/1.1.1.1/closet15.cfg7 00001d000001:00001d000107 Lat-Long x7° by y7° closet1.cfg 800001d000001:00001d000108 Lat-Long x8° by y8° http:/2.2.1.1/closet99.cfg9 00001d000001:00001d000109 Lat-Long x9° by y9° closet1.cfg 1000001d000001:00001d000110 Lat-Long x10° by y10°ftp://3.3.3.3/config10.cfg3.2 Restrictions Based on Location (FIGS. 4, 5, and 6)

In addition to provisioning and configuring, the operations of system100 can be restricted based on location. These restrictions can involverestrictions on the access and use of system 100. These restrictionsalso can involve the transmission of data around and through system 100.For an overview example relating to network access, the locationinformation within a network enables authentication based on location.Location information allows system 100 to authenticate a user not onlybased on the credentials provided by the user, but also based on thelocation of the device used by the user to access the network. Dependentupon the device location, system 100 can allow or restrict access tocertain devices, information, applications, signal exchange priorities,and the like. Further, even if a device and/or its user supplies tosystem 100 a claimed device location, system 100 can employ thetechniques described herein to confirm the location independently fromthe device. This ensures that the device location comes from a trustedsource (e.g., assign an acceptable value for the level of trustparameter) and can be used reliably.

For an overview example relating to data restrictions, system 100 canadd one or more parameters to data associated with a network (e.g., aproprietary database) for restricted access as a function of thelocation of the device seeking the information, or a combination of userand location information. For example, system 100 may be programmed todeny access to corporate business information upon request from anetwork entry device, or coming through an intermediate device that islocated outside of a specified region. System 100 also can employlocation information to effect a change in a file dependent upon thelocation of the device accessing that file. In particular, the file mayinclude a lock-out indicator or a destruction indicator if an attempt ismade to open it from outside a specified location. One example issensitive corporate business information. If an attempt is made toaccess such information from what is otherwise an authenticated device,that information or file may nevertheless be destroyed if theauthenticated device is not at a specified location or region. Thisfeature can be seen as valuable in maintaining the security of filesretained on or accessed by a device that is not in the possession of anauthorized user. The examples that follow describe these overviewexamples in more detail.

3.2.1 Restricting Access to Network (FIGS. 4 and 5)

As described in the overview example, location information allows system100 to authenticate and restrict a user based on the location of thedevice used by the user to access the network. The location informationcan be added as an authentication attribute to typical authenticationsystems. Entry into and usage of a network is typically regulated usingauthentication systems such as Network Operating Systems (NOSs), RemoteAuthentication Dial-In User Service (RADIUS), described in IETF RequestFor Comment (RFC) 2138, and IEEE 802.1X standard, which provides forport-based network access control based on a MAC identifier. In the caseof NOS and RADIUS, an authentication server (e.g., 142 (FIG. 8))provides the mechanism for establishing such authentication. In the caseof IEEE 802.1X, the network entry devices 114 may be configured withsuch authentication capability, as described more fully in thatstandard. IEEE 802.1Q standard provides another means for controllingaccess and usage of a network. That standard is directed to theestablishment and operation of VLANs. The IEEE 802.1Q standard definesthe configuration of network devices to permit packet reception at aconfigured port entry module. Firewalls (e.g., 140 (FIG. 8)) alsoprovide a technique for network usage regulation. Firewalls areprimarily computer programs designed to analyze packets and, from thatanalysis, make a determination as to whether packet transmission into orout of the network is permitted. Being location-aware, system 100 isable to combine the association of a device's physical location with anyof these network access regulations as an attribute to assess permittednetwork access. For example, a VLAN policy template distributed tonetwork devices to configure VLANs can be accompanied by a physicallocation constraint.

In general overview of the authentication process, a user device 104connects to the network infrastructure 101, via a connection point 160.System 100 authenticates the device. System 100 receives the location ofthe device 104 from the device 104 itself and/or from infrastructure101. System 100 receives user credentials and authenticates the user.During this authentication, system 100 verifies the location of device104 employing the techniques described herein. If the user isauthenticated and the location is both verified and authenticated forthe requested network resources, system 100 proceeds in allowing device104 to access the requested resources. System 100 can log each of theseevents for administrative use.

To describe this concept in more detail, the following example involvesthe use of an authentication server (e.g., 142 (FIG. 8)). In thisexample, the authentication server, utilizing various protocols, such asRADIUS, TACACS+, Diameter, SecureID®, EAP/IEEE 802.1X and/or the like,includes the functionality of a location server. The authenticationserver/location server also includes a location database. The locationdatabase is expanded to support the ability to indicate whether theauthentication server should consider location information when a useror network client tries to log in from a certain physical location.

For example, secure military and intelligence environments can requirethat certain physical locations be protected from unauthorized use ofcomputing systems available in that secure location. Each computingsystem includes a location client that the computing system employsduring the process of authenticating an individual user. The expandedlocation database may contain, for example, attributes such as “securearea” or “minimum security level” truth tables. When a user tries toauthenticate, the authentication/location server employs the location ofthe user requesting authorization when validating credentials. Theauthentication/location server derives this information, for example,using a reference to a connection point ID as described above. If theuser has a security clearance of a high enough level to authenticatefrom that location, the authentication process proceeds. If the userfails to meet the security level associated that particular location,then the network can halt the authentication process, sound alarmsand/or report the location of the unauthorized user.

In more detail, FIG. 4 illustrates an example process 401 that system100 employs to determine whether any restrictions to access the network,based on location, are applicable. Specifically, in example locationidentification process 401 represented by FIG. 4, a user seeking accessto system 100 can be first authenticated (step 405) or otherwisefiltered by system 100. System 100 achieves this portion of theauthorization process by requiring the end user at a location clientdevice to supply certain user information including but not limited to,a name and one or more passwords (e.g., necessary user credentials). Ifthe user is permitted access to system 100 on that basis (e.g., username and password), system 100 permits the user to query (step 410)system 100 for access to certain information, applications, and thelike. Alternatively or in addition, system 100 receives (step 415) thedevice location before allowing the requested access. A trusted userdevice (e.g., 104), a network infrastructure device (e.g., a networkentry device 114) and/or a location server can supply the user devicelocation using the techniques as described herein.

With the received location information, system 100 authenticates (step420) that the physical location of the client device is in a permittedand authorized location for access to the requested network resources.In one example, system 100 permits requested access from devices havingpre-approved location identifying equipment, such as a trusted devicethat can identify the location of that client device. As describedabove, this can include a GPS receiver associated with the client devicethat system 100 has previously evaluated for trustworthiness (e.g.,cannot provide false location). This also can include a trusted devicewithin network infrastructure 101 such as an authenticated router orswitch or a hardwired GPS receiver that can provide location informationusing the techniques described above. The creation of the trusted devicealso may be a recursive function if the client device is locatedrelative to the trusted device and the network or the network locationresolution is built outwardly.

In general, system 100 performs an ongoing policing function, forexample by repeating the process shown in FIG. 4 periodically or whennew information becomes available or triggered by external events.

In another example, the system 100 employs a level of trust parameter toauthenticate (step 420) the trustworthiness of the location information.The values for the level of trust parameter can vary, using asufficiently large scale and range to allow for changes and growth. Forexample using a sixteen bit word, system 100 can use a a scale from 256to 3,840, where 256 corresponds to the lowest level of trust and 3,840corresponds to the highest level of trust. This range, because it doesnot use all sixteen bits, provides room for growth in the range assystem 100 develops over time. Any levels in between the lowest andhighest levels of trust represent a mixed level of trustworthiness andsystem 100 determines whether it will employ the location informationwith a mixed level dependent on the type of access the user requests(e.g., results of the query (step 410)). A more sensitive applicationand/or information may require a trust level of 3,072 or greater,whereas a general application and/or information may require a trustlevel of 1,023 or greater. System 100 may allow a user to access publicinformation regardless of the value of level of trust. In other words,the required level of trust value to authenticate the location can varydepending on the types of resources to which the client requests access.

In one example, system 100 determines the level of trust of the locationinformation based on the originator of the location information. If thelocation information originates from an internal routing device withininfrastructure 101, without public access and under control of a networkadministrator, and the connection point is a jack in the wall, with anattaching cable that cannot be altered without destroying the wall, thesystem 100 can assign the highest level of trust value of 3,840 (i.e.,this example employs a scale of 256 to 3,840). In this case theprobability that the location information will be incorrect or has beenaltered is very low or non-existent. If the location informationoriginates from a wireless access point (e.g., 120 b) within the system100 that determines the location of the user device using a techniquedescribed above, there is some trust because a wireless access point 120is within the infrastructure 01 of the network. There is somepossibility of signal manipulation, however, so system 100 assigns thelocation information a level of trust a value of 2,256 because theprobability of incorrect location information is relatively higher thanthe jack in the wall example above. If the location informationoriginates from the user device itself using a system that is allegedlytamperproof, or comes with a third party certification, system 100 cantrust this slightly, but again is not sure of what can be done tomanipulate signals, so system 100 assigns this a level of trust value of1,023. If the location information originates from the device withlittle or no safe-guards (e.g., using a built-in GPS with notamper-proof technology), system 100 can assign the location informationa level of trust of value of 456 (e.g., trusts all GPS signals slightly)or 256 (e.g., no mechanisms to prevent signal tampering, so assignlowest value).

With reference to FIG. 4, once system 100 has authenticated (step 405)the user and authenticated (step 420) the device location information,system 100 considers the access request. System 100 determines (step425) whether the user has the proper credentials for the level of therequested service. To do this, system 100 compares the user credentials,the location information, and the conditions of access requested (e.g.,a request for a certain database of information, a request for a certainapplication, and the like) with any stored location restrictions. Ifsystem 100 determines (step 425) the user is authenticated for theparticular request, system 100 determines (step 430) whether the deviceused by the user is in a location approved or otherwise permitted toreceive the requested information, application, and the like. If boththreshold questions (step 425 and step 430) are answered in theaffirmative, system 100 permits the user to access, via the clientdevice at the known location, the material requested. If eitherthreshold question (step 425 and step 430) is answered in the negative,system 100 denies (step 440) the user access and can notify the networkmanager. In addition or as an alternative to denying access, system 100also can entertain, honeypot, and/or otherwise disable and delay therequesting client to provide time for an administrator to takeadditional action, such as notifying authorities. In another example,system 100 bases access to the requested material solely on devicelocation, and the optional steps of authenticating (step 405 and step425) based on user identification information are not a pre-conditionfor access. As described above, system 100 can continually policelocation authentication by looping steps 415, 420, 425, 430, and 435, asindicated by arrow 440.

FIG. 5 represents another example authentication process 500. In theillustrated process 500, system 100 obtains (step 505) the locationinformation for an client device. In this case, system 100 employs onlythe location of the device in determining the appropriate level ofservice. In another example, system 100 can also employ the usercredentials (e.g., user name and password), in addition to the location,to determine the appropriate level of service. System 100 determines(step 510) whether the obtained location is verified. If system 100determines (step 510) that the location is not verified, system 100denies (step 515) access or restricts (step 515) access according topredefined policies (e.g., deny any access or restrict access to onlythose devices, applications and data available to the general publicregardless of location). If system 100 determines (step 510) that thelocation is verified, system 100 determines (step 520) whether thelocation is authenticated. If system 100 determines (step 520) that thelocation is not authenticated, system 100 determines (step 525) whetherto accept the asserted location. If system 100 determines (step 525) tonot accept the asserted location, system 100 denies/restricts (step 515)access according to predefined policies. If system 100 determines (step525) to accept the asserted location, system 100 allows (step 530)access at selectable service levels, as described below, according topredefined policies.

If system 100 determines (step 520) that the location is authenticated,system 100 determines (step 535) whether the user location isauthenticated at the level required. This can include, for example,having a minimum level of trust for the requested level of access. Ifsystem 100 determines (step 535) that the user location is notauthenticated at the level required, system 100 allows (step 530) accessat selectable service levels, as described below, according topredefined policies. If system 100 determines (step 535) that the userlocation is authenticated at the level required, system 100 allows (step540) access at the authenticated level.

As described in conjunction with process 500, system 100 allows a useraccess to system 100 at selectable service levels, based on locationinformation (e.g., step 530). Examples of selectable service levelsinclude, but are not limited to: access denied; threshold accesspermitted regardless of device location; trusted user and devicelocation is verified but not authenticated, some restricted servicespermitted; general location verified (e.g., in a public area, airport,country, city, telephone area code or exchange) and some limited accesspermitted; verified ISP and user verified; verified ISP and user notverified, some limited access permitted; previously authenticatedlocation, re-authentication required based on time intervals;authenticated location and user, permit all predefined permissions; andre-authentication required. Some of these levels can be combined toinclude additional service levels. For example, re-authentication may berequired at any time for any reason including, but not limited to,topology changes, timeouts, untrusted network devices, location databasechanges, disconnected cables or local or remote triggers from intrusiondetection systems and firewall systems. System 100 can enforce suchre-authentication policies, for example by using the edge policingdescribed in FIG. 3. These service levels may correspond to the levelsof trust described above (e.g., level of service dependent on a minimumvalue of the level of trust of the location information).

Use of the above techniques enables system 100 to restrict access todata, applications, specific networked devices, data and networkservice, QOS (Quality of Service) levels, network tools, functionality,rules, and the like, based on the user and/or the location of the deviceassociated with the user seeking access. Further to the techniquesabove, system 100 can employ the location information to effect amodification of the access requirements. For example, when a deviceseeks network access from a location deemed not to be inherently secure(e.g., such as a public facility like an airport), system 100 can prompta user to initiate an improved connection, such as a virtual privatenetwork (VPN), or can inform the user that supplemental restrictionsapply while in the insecure area. More generally, this can be seen as anexpansion of policy-based access in that the access rules for anindividual user may be adapted as a function of the client devicelocation and/or the level of trust associated with the locationinformation.

Further to the techniques described above, system 100 also can providerestricted access to the network based on a particular port connected tothe connection point to which the location client is connected. In oneexample, system 100 employs the techniques above to determine thelocation of the connection point associated with that particular port,rather than assume a location supplied by the location client iscorrect. For that particular port for which location has beenestablished and can be trusted, system 100 encodes transmitted data suchthat the port associated with the trusted location and only that portwill accept the encoded data for transmission. If the user disassociatesfrom that particular port, whether intentionally or unintentionally,he/she must re-authenticate.

In this example, system 100 performs the authentication and anyre-authentication using an encryption key process. Specifically, an enduser, that system 100 has authenticated by user and by location, isprovided with an encryption key that is designed to work only on theport through which the key was supplied, and no other. That is, the keycannot be obtained and then used through a different port, which wouldbe the case if the device used by the user were to move locations (e.g.,change connection points). It is to be noted that the key may betumbled, rotated, and the like. In one example, the network entry devicehas no knowledge of the specific key, but instead uses the portnumber/logical port number and one or more of a MAC address, an IPaddress, its own generated encryption key, and the like, to permittransmission. System 100 also can modify a data packet so that itsreceiver can only determine whether the transmission came from the rightuser (e.g., based on the use of the right key) and was modified by anauthenticated device (e.g., the location/authentication server) for thatparticular access port (e.g., 113 (FIG. 1)) of the network entry device(e.g., 114 a (FIG. 1)). In another example, there is a three way keying.The client device, the port from the network entry device and the serverproviding the data each have their own associated keys. In this way, theserver can verify that the data coming from the client is indeed comingthrough the port with the assigned key, for example by verifyingsignatures on the data from both the client and the authenticated port.In summary, the key is only good for that port which has beenspecifically established to authenticate that user at the authenticatedlocation. In that way, system 100 can prevent a user from obtainingaccess, using a false allowable location, by denial of port access whenthe end user's location has changed, even if the original encryption keyfor that allowable location has been acquired.

4.2.1 Restricting Location of Data (FIG. 6)

In addition to access control, system 100 can use location informationto enforce restrictions regarding the transmission of data. As describedin the overview example, location information allows system 100 to denyaccess to certain sensitive information upon request from a locationclient outside of a specified region, or to prohibit data from beingtransmitted through an intermediate device that is located outside of aspecified region. FIG. 6 illustrates an example process 601 that system100 employs to effect these data transmission restrictions.Specifically, in the example information tagging process 601 representedby FIG. 6, system 100 receives (step 605) a request from an end user foraccess to information (e.g., file, document, and/or the like, generally,data). This assumes that the end user has been adequately authenticatedor otherwise permitted access to the network, as described above. System100 then determines (step 610) whether the requested data is locationsensitive. That is, whether the data should not be moved beyond certaindefined boundaries (e.g., a present device, a room, a building, acampus, a city, a country and the like). If system 100 determines (step610) that the data is not location sensitive, system 100 permits (step615) access to that data that is not restricted by location.

If system 100 determines (step 610) that the data is location sensitive,system 100 tags (step 620) the data. For example, the applicationgenerating the data and/or the server generating a data packet totransport the data over the network can add this tag while generatingthe data and/or packet. In one example, the tag comprises a file headerthat identifies location restrictions. The file header also can includea key. In some examples, an end user can request to add a tag tosensitive data such that it cannot be transmitted outside of a definedlocation (e.g., home, corner office, the courtroom, a hospital, ahealthcare facility and the like). The tag may be configured either todeny opening (step 620 a) of the transmitted data at an unauthorizedlocation, or to destroy (step 620 b) the data when it is determined thatthe data is in an unauthorized location. The file header may itself becoded or encrypted. Additionally the data/file may be so encrypted suchthat the deletion of this special file header will either deny openingof the transmitted data, or force the destruction of the data,regardless of the location.

A device within system 100 and/or the data itself determines (step 625)whether the data is outside the permitted location(s). If the data isnot outside the permitted location(s), the system 100 permits (step 615)access to the data. If the data is outside the permitted location(s),system 100 denies (step 630) access to and/or destroys (step 630) thedata. If the data is going to be routed in the next hop to a locationthat is outside the permitted location(s), the system 100 prohibits thedata from being transmitted to that device outside of the permittedlocation(s). For example, system 100 can employ edge policing, asdescribed with FIG. 3, where devices of infrastructure 101 police andenforce access by controlling whether or not the data is forwarded to alocation client requesting the data. The data itself, or an applicationtrying to access the data, can also police and enforce theserestrictions by including executables that obtain the location, with anacceptable level of trust, of the device in which it executes andprohibit access if such location is a prohibited location.

The system 100 can be optionally configured to provide additionalsecurity override controls to the end user to prevent destruction of thetagged data or denial of access to the tagged data if the user islocated outside of the permitted area of access. In this case, system100 polices access to the data and not necessarily where system 100forwards the data. In this example, even if the data is outside thepermitted location(s), the system 100 determines (step 635) whether thetag can be overridden. If the tag can be overridden, the system 100permits (step 615) access to the data. In this case, the access (step615) is limited access. For example, the user may be allowed to load thedata into a user device for transport, but the user cannot read or editthe data until the user device is located in a permitted location.

4.3 Providing Other Services (FIG. 7)

With a location-aware infrastructure, system 100 can employ trustedlocation information to provide other services in addition to thosedescribed above. For example, system 100 can use the locationinformation in emergency situations, where a device may be an alarm orsensor. System 100 determines the location of the alarm device andtransmits the location information to a party responding to the alarm.System 100 can also use location information to recover a stolen userdevice 104. As the stolen user device 104 accesses system 100, system100 determines the location of the stolen device and transmits thelocation information to a party seeking to locate the device. System 100can track mobile user devices (e.g., 104 b) and thus can also trackanything associated with that user device (e.g., the user, a file, aphysical object, and the like). System 100, through the use of locationinformation, can provide these and other services and applications. Theexamples that follow illustrate how system 100 can employ locationinformation to provide these and other services and applications.

In one example, FIG. 7 illustrates a process 700 for establishing asecurity service in a network environment based on location information.In process 700, the client devices may be physical intrusion detectiondevices, smoke detectors, fire alarms, EMT devices, wireless panicbuttons, and the like. These client devices are designed to signal anemergency event. Alternatively, the device may be any sort ofnetwork-connected device that is configured to transmit an alarm uponfailure or imminent failure, or to transmit an alarm if a deviceconnected to it fails. If the device includes a location module 185,location server 134 can provide and store that device's locationinformation in that device itself.

In one example, an event triggers (step 705) a smoke detector on the 4thfloor of the 5th building on the left side of the street. System 100, towhich the triggered device is connected, either determines the device'slocation using the techniques described herein or queries (step 710) thetriggered device's specific location information. System 100 directs thequery to the device itself, or to location server 134. System 100receives (step 715) the location information, either as an absolute or arelative location. As described above, the location information may ormay not be trustworthy. System 100 can verify the location informationto make it trustworthy or increase the level of trust required for theparticular security service system 100 is providing. System 100 relays(step 720) that detailed location information to the appropriateauthorities, potentially leading to greater response efficiencies. Alocation client having a network association can be made more effectiveby linking the device's location information with that device'soperation.

Another example of a security service system 100 provides is to protectsensitive devices from theft. For example, if a laptop computer isstolen and the thief seeks to access system 100, system 100 evaluatesthe location information, whether obtained directly from that client orfrom the location server 134 when the end user accesses the network. Inthe event that network entry is sought, the location of the requestingclient is acquired. Assuming system 100 can determine that thatparticular location client has been stolen, system 100 supplies thelocation information to a suitable authority. To provide authoritiesenough time to get to the identified location, system 100 also canentertain, honeypot, and/or otherwise disable and delay the requestinglocation client. The location-aware system 100 thus can be used as aneffective means to exchange accurate location information in relation toa security violation and, potentially, to neutralize effects associatedwith that violation.

Yet further, the location-based system 100 and the techniques describedherein may be employed to regulate and/or accurately monitor themovement of individuals, equipment, packages, and the like, as theytravel near and through network infrastructure 01. An electronic device(e.g., user device) that communicates with system 100 is applied to apass, a label, an asset tag, and the like. That device includes means toenable tracking of its location using techniques, for example, theradio-based techniques described above. For example, all visitors to asecure facility are supplied with a visitor pass. That visitor passincludes a transceiver that is capable of communication with wirelessaccess points (e.g., 120 b (FIG. 1)) of network infrastructure 101positioned throughout the facility. These wireless access points can beconfigured such that as the tag/pass/visitor moves throughout thefacility, network infrastructure 01 determines the visitor's locationusing the techniques described above. In addition, security guards canknow whether any visitors remain in the facility at a planned closingtime. This eliminates the need for the facility to maintain a separatetracking system with sensors. Instead of the separate tracking system,the same data network infrastructure 101 employed for network accessalso can be employed for tracking, by associating a location with eachof the devices that communicate with network infrastructure 101.

These techniques enhance network security, enhance device security,likely improve emergency responsiveness, and may be employed toestablish network-based organizational security. These and many otheradvantages are provided through the association of relevant networkdevice and networked device location information with security,protection, and response efforts. System 100 can also provide otherservices based on location not described above. For example, system 100can provide enhanced network topology discovery and mapping, with devicemap representations specific to their physical location. For example,system 100 can employ location information to prepare accurate maps thatassociate devices with their physical locations. System 100 also canprovide device inventories by location, without the need of manuallyverifying each device individually. As described above, the locationdatabase can be expanded to include device ID information along with thecorresponding location information.

Further, system 100 can employ location information to check thatnetwork rules are followed (e.g., if wiring designs are inaccurate andmust be supplemented or changed). The location information can be ofvalue to the LAN manager and, for example, to an Internet ServiceProvider (ISP) or a cable operator interested in knowing the locationsof cable modems and phone line terminations.

System 100 also can provide information to a user that is relevant basedon that user's current location. For example, a traveling end user maydial into the network, have the connecting device's location informationacquired or supplied, and then be directed to hotels, restaurants, andthe like, within a defined radius of the device's location and meetingany number of selectable criteria.

5.0 Some Additional Examples (FIG. 8)

Referring to FIG. 8, system 100′ provides another example of alocation-aware network and is described as an enterprise network thatserves as a data communications network for a business organization orother type of enterprise. The enterprise operates the network accordingto various policies, which may include location-dependent aspects. Forexample, access-control policies may depend on the locations of devicesaccessing services on the network. In various configurations, system100′ may include or make use of one or more LANs, MANs, WANs, PANsand/or Ethernet to the first mile (e.g., IEEE 802.3ah). In otherexamples of such a network, the physical and logical arrangement of thedevices can differ from that shown in FIGS. 1 and 8.

System 100′ includes various types of devices. Some devices are networkentry devices 114 c-j, generally 114, which provide access to aninfrastructure 101′ of system 100′ to user devices 104 c-l, generally104, or to external networks such as Internet 148 or telephone network132. The portion of system 100′ excluding user devices 104 and externalnetworks is referred to as network infrastructure 101′. Thisinfrastructure 101′ includes devices for switching and routing datawithin the system 100′, including one or more central switching devices136′ and computers that provide services in support of access to androuting of data in the system 100′, including an authentication server142, an application server 134′, and other servers such as a domain nameserver (not shown). In addition, system 100′ includes devices such as aprinter 122 and a fax machine 123 which have some characteristics ofboth user devices and of network infrastructure devices.

Network entry devices 114 provide access to network infrastructure 101′over various types of transmission media, including cable-based orwireless. The cable-based transmission medium can include, for example,twisted pair wires used for a 100-Base-T Ethernet link. A cable-basedtransmission medium can also be a shared cable-based transmission mediumthat can connect more than two devices. For example, a coaxial cableused for 10-Base-2 Ethernet, telephone cables used for high-frequency(e.g., HomePNA) communication between multiple devices, and power linesused for data communication (e.g., HomePlug) between devices providesuch shared cable-based transmission media.

Entry devices 114 together include a number of entry port modules (e.g.,113′ and 118), each associated with a different medium (e.g., a cableand/or a portion of a radio spectrum). For instance, in system 100′,entry port module 113′ of network entry device 114 f is connected touser device 104 c by a dedicated cable-based transmission medium 112′.

Entry port module 118 of network entry device 114 g is connected to userdevices 104 d-f by a shared wireless transmission medium 119′. Entryport module 146 of network entry device 114 d is connected to userdevice 104 g by Internet 148 and shared transmission medium 152.Further, entry port modules 126, 128, and 130 of network entry device114 e may be connected to user device 104 h by telephone network 132 andby shared transmission media 154. Entry port modules 126, 128, and 130of network entry device 114 e may also be connected to user device 104 musing a cellular telephone (or PCS) tower 175, which is connected via abase station 178 to the telephone network 132 and the sharedtransmission media 154. Any of network entry devices 114 may be coupledby different port modules to both shared and dedicated transmissionmedia as well as cable-based and wireless transmission media.

Network entry devices 114 and end user devices 104 can come in a widearray of configurations. For example, user devices 104 can includeindividual computers, printers, servers, cellular phones, laptops,handheld electronic devices, telephones, Internet Protocol(IP)-configured telephones, switch devices, and the like. Network entrydevices 114 can include, for example, switches, routers, hubs, bridges,repeaters, wireless access points, data communications equipment, servercomputers, modems, multiplexers, Private Branch Exchanges (PBXs),virtually any devices used to interconnect data equipment or enddevices, and the like. The discreet boundaries of infrastructure 101′are for illustration only. For example, system 100′ may include a serveroutside of the illustrated boundary while remaining logically part ofinfrastructure 101′. In another example, there may be a portion ofnetwork infrastructure 101′ connected to system 100′ located in a remotenetwork, such as Internet 148.

In any particular physical arrangement of system 100′, each device(e.g., 104, 114) has a connection point (e.g., 160 c, 160 d, 160 e, 160f, and 160 g, generally 160). A connection point 160 is the place wherean associated device connects to system 100′, and thus corresponds tothe location of that device. For example, for devices communicating viaa cable (e.g., 104 c, 104 g, 104 h, and 114 g), their connection points(e.g., 160 o, 160 l and 160 k, and 160 n, respectively) represent theterminus of the cable (e.g., a wall jack) where the respective devicesphysically attach to make a connection to the network. For example,connection point 160 o represents the terminus of cable 112′. Forwireless device 104 f, the transmission medium is air, so the respectiveconnection point 160 m represents the location of the receiver antennareceiving signals from the wireless device. For any physical arrangementof system 100′, each connection point 160 is associated with aconnection port in network infrastructure 101′ that providesconnectivity to the rest of system 100′. For example, user device 104 c,which is attached to connection point 160 o (at the end of medium 112′),is associated with connection port 113′. Note that should the physicalarrangement of system 100′ change, for example, if medium 112′ weredisconnected from port 113′ and reconnected to a different port in thesame device or in a different device, the association of a connectionpoint and a connection port may change. As described above, maintainingan association of connection points and connection ports, particularlyin generating connection point IDs, provides a way for determininglocations of devices in the system 100′.

5.1 Distributed Location Database

In some of the techniques/mechanisms described above, system 100 employsa centralized location server 134 that contained location serverfunctionality and the location database. As an alternative to thecentralized system, the location-aware portion of system 100 can beimplemented as a distributed system. In examples of a distributedsystem, the location server functionality and the location database aredistributed among the devices of the network. In example distributedsystems, location module 185 exists in any one, a portion, or all of theexemplar devices of a network, including for example the entry devices(e.g., 114), a server (e.g., 142), a firewall (e.g., 140), and the like.As illustrated in FIGS. 1 and 8, some devices comprise a location module(e.g., 185 a-o, generally 185), whether in hardware, firmware, orsoftware, that can be configured to include different functionality andpieces of information, including location information. As describedbelow, for a distributed system example, devices both inside and outsidenetwork infrastructure 101 can optionally maintain location dependentinformation that affects their operation.

5.1.1 Distributed Within the Network

FIGS. 1 and 8 illustrate location modules 185 in a portion of thedevices for example only. As described above, the informationrepresenting the location of a particular network device, or one or moredevices attached to a particular network device, may be preloaded intolocation module 185 as a database. The location database at each devicecan be the entire location database of system 100, or a portion of thelocation database. In particular, the portion of the database includedin the location module 185 of the device can be a portion with thoselocations applicable to that particular device. For example, all of theconnection points associated with the ports of a particular networkentry device. Alternatively, location module 185 may include anupdateable table that changes with additions or deletions to system 100and/or movement of devices associated with system 100. Location module185 can include location information and can be configured to measure,calculate, infer, search, and/or otherwise acquire information toprovide one or more of the detailed mechanisms/techniques describedherein. Location module 185 also can be configured to be an accesscontrol module that enables regulation (e.g., policing) of access tonetwork-based data, applications, QoS, ToS, bandwidth, and the like,based on device location information. For example as illustrated in FIG.4, for the distributed system, location modules 185 are configured toinclude device location as a requirement to permit access tonetwork-based information, applications, rate service, rate type, andthe like. With such a distributed system, each network entry device(e.g., 114) becomes a quasi-authentication server. As illustrated inFIG. 6, location modules 185 are configured to include means for tagginglocation-sensitive information/data and acting on that tag accordingly.Each location module 185 also can enable identification of the locationof a communicating device for the purpose of providing security, safety,or other services described above.

For the distributed example, location server functionality can be partof any network device, management station, or server/authenticationserver. The location server functionality may be co-located within aswitch or network device (e.g., 114) through which a user devicecommunicates. In a distributed system, devices can include functionalityin their respective location modules 185 to be both a location clientand a location server. In remote offices, a router that connects theremote office to the home office can comprise the location serverfunctionality, as it may need to provide location information for E911applications, for example. In other applications, such as an enterprisecampus networks, the location server functionality may be part of anenhanced IP address management system such as a Dynamic HostConfiguration Protocol (DHCP) server as well as a dedicated locationprovisioning system.

The following is a list of a few possible devices (but not limited toonly those devices) that can contain the location server functionality:network switches, data switches, routers, firewalls, gateways, computingdevices such as network file server or dedicated location servers,management stations, network connected voice over IP/voice over datasystems such as hybrid PBXs and VoIP call managers, network layeraddress configuration/system configuration servers such as enhanced DHCPservers, enhanced Bootstrap Protocol (bootp) servers, IPv6 addressauto-discovery enabled routers, and network based authentication serversproviding services such as radius, extensible authenticationprotocol/IEEE 802.1X or others.

In one example, to provide the distributed location databases withlocation information, system 100 employs a Simple Network ManagementProtocol (SNMP). A network administrator provisions the locationinformation of the terminus of a network cable in the SNMP ifDescrvariable (e.g., the ifDescr is a read only attribute, but many systemsallow a network operator to “name” a port, which then will be displayedin this field). The location server functionality of a device reads theterminus information via the SNMP.

As described above, the location client attempts to learn its geographiclocation and/or identifies itself to another device with a need to knowthe client's location. An advanced location client can also receive itsoperational configuration from a location aware network (e.g., from alocation server configured to additionally provide configurationinformation). The location client communicates with any network elementand discovers its connection point ID through one of many possiblemethods described herein. Once the location client knows its connectionpoint ID, it can contact a location server to discover its actuallocation, or to register itself with the location server, which can actas a proxy for other communication entities seeking to discover thelocation of the location client. It is also possible for a locationserver to be a communication system that may modify the locationclient's communication traffic with the device's location information.

The following is a list of a few possible devices (but not limited to)that can contain a location client: network switches, routers,firewalls, gateways, computing devices such as a network file server orend user computing devices, personal digital assistants, smartappliances (toaster, refrigerator or coffee pot with networkconnectivity), network connected voice over IP/voice over data systemssuch as hybrid PBXs and VoIP call managers or voice over IP/datahandsets.

5.1.2 Distributed Outside of the Network

In addition to their being distributed among the devices of system 100,system 100 can employ location information from a trusted database thatis external to the network and/or a trusted database maintained by athird-party. As described above, system 100 can assign a level of trustfor all of the location information obtained from a database external tosystem 100. For example, in the telephone network example, where theunique connection point ID can be a telephone number, the locationserver functionality, either in location server 134 or any of thedistributed functionality in the location modules 185, can reference awhite-pages type database to retrieve an address for the telephonenumber. If the address is not a location format recognized by alocation-aware application, the location server functionality canreference another third-party database to convert the address tolatitude and longitude coordinates, for example. Further granularity maybe obtained. For example, for a home business, an address may have twophone numbers associated with it, a business phone number and aresidential phone number. The location of the connection pointidentified with the business phone number is in the room established asthe home office. This may be located on one floor of the house,providing altitude coordinates also. The location of the connectionpoint identified with the residential phone number is in the roomcontaining the family personal computer. This may be located on anotherfloor of the house. Similarly, the location server functionality canobtain an address, a room, and/or geographical coordinates where theconnection point is a cable endpoint connected to a cable modem and theIP address is associated with an address of the subscriber. System 100can use any available resources to update the location information ofparticular connection points, assigning the appropriate level of trustbased on the trustworthiness of that third party source.

5.2 Use of a Location Advertising System in a Distributed Network

In one distributed example, system 100 employs a location advertisingsystem to communicate information among the devices. A locationadvertising system comprises a networking device that provisions and/oradvertises device location information and/or configurations to alocation client device over the network, typically using a layer 2 orlayer 3 protocol (e.g., a neighbor discovery protocol). The locationadvertising system also comprises devices to which location clientdevices may connect via the network. An example of a locationadvertising system device can include a location advertising switch,which is a device, such as a data switch operating as a layer 2 or layer3 LAN switch. Another example of a location advertising system devicecan include a location advertising router, referred to sometimes as anautomated configuration server, which comprises a network router. Thisdevice can also comprise a branch office router that can provide aconfiguration to a LAN switch and/or a wireless access point in a remoteenterprise office. Other devices in the location advertising system caninclude a wireless LAN access point, a virtual private network system, atunnel server, a remote client, a gateway and/or the like. A deviceacting as a location advertising system may distribute locationinformation based on various coordinate systems or textualrepresentations of a physical location. A device in the locationadvertising system, when it is a device that has location clientsphysically connected to it via physical cables, contains a database ofconnection points that correspond to a physical network access port andthe corresponding geographic location information of the terminus of thenetwork cable connected to that port, similarly as described above.Although presented in the context of a distributed system, the locationadvertising system can also be implemented in a centralized system usinga centralized location server as described above.

When system 100 employs a LAN Switch in its location advertising system,system 100 not only provides location and configuration information to alocation client device, but it also can automatically map networkpolicies to the port where the location client device is connected. Thispolicy may be provisioned on the location advertising switch as soon asthe location client is detected or policy provisioning may be enabledonly after the location client is properly configured and verified. Thisfeature is referred to as self-enabled policy.

When a location advertising system comprises a wireless LAN accesspoint, the network maps location and configuration information to adevice specific identification, IEEE MAC address as an example, and theIEEE 802.11 association ID present during the operation of the wirelessnetwork. The network maps the location coordinates to the associationID. As wireless networks afford client devices total mobility, thesystem employs techniques, such as the techniques described above forexample, to triangulate the coordinates of the location client at anyinstance. The location database can be dynamic in nature as the client'scoordinates can potentially change very frequently.

5.2.1 Specific Examples Using a Location Advertising System

One example of automated network management employing the locationadvertising system is the configuration of Voice over IP handsets with aneighbor discovery protocol in a data network. Voice over IP handsetstypically are designed to communicate with Ethernet switches and canrequire complex configurations. Networks with the location advertisingsystem can integrate neighbor discovery protocols with Voice over IPhandsets to provide configuration information to the handset, discoverinventory information to be stored on the connection point switch, andautomatically configure the ports' parameters on the connection pointswitch/access platform.

The automated voice handset configuration system in this example canprovide the voice handset with several parameters. For example, thesystem can provide VLAN membership and classification rules for voiceand/or fax payload and control traffic. The system can also provide VLANmembership and classification rules for non-voice payload and controltraffic. The system can also provide the IEEE 802.1Q prioritizationpacket marking information of voice payload and control traffic. Thesystem can also provide the IEEE 802.1Q prioritization packet marking ofnon-voice payload and control traffic. The system can also provide theIP type of service field markings for the voice payload traffic. Thesystem can also provide the IP type of service field marking for faxpayload traffic. The system can also provide the IP type of servicefield marking for voice/fax control traffic. The system can also providethe Internet address for the voice entity contained in the VoIP phone.The system can also provide the ANSI LIN (Location IdentificationNumber). The system can also provide the geographic location of thehandset with geodesic information or any other geographical coordinatesystem including elevation or relative location information.

For illustration of this specific example, let user device 104 c (FIG.8) represent a VoIP handset and network entity device 114 f represents aLAN switch. The LAN switch 114 f includes location advertising systemfunctionality, for example, as part of location module 185 n. The LANswitch 114 f also includes an expanded database in location module 185that includes inventory information, geographic information andconfiguration information. In operation, the Voice over IP handset 104 cboots and starts sending out neighbor discover protocol packets. Thesepackets trigger the LAN switch 114 f to which the VoIP handset 104 cconnects to start sending neighbor discovery protocol packets. The LANswitch 114 f responds back to the voice handset 104 c with the followingconfiguration information obtained from its expanded database: IEEE802.1Q priority marking configuration, IEEE 802.1Q VLAN membershipconfiguration rules, Internet protocol type of service/differentiatedservices marking rules, the IP address of the voice call managers/IPPBX/IP voice switch which the voice handset 104 c needs for normaloperation, and the ANSI LIN. The LAN Switch 114 f enables policymanagement configurations on the port where the switch connects (e.g.,self enabled policy). The voice handset 104 c continues to utilize theneighbor discovery protocol to continue to advertise its device specificinformation. This device specific information can include, for example,model number, device type, IP address, device serial number, microcodeversion utilized by the handset, and the like. The LAN switch 114 fdecodes this device specific information from the neighbor discoveryprotocol packets sent by the voice handset 104 c and records theadvertised information to a local or remote network management database.The system 100′ uses this information to support inventory managementand device location applications.

Another specific example of automated network management employing thelocation advertising system involves the use of network LAN switches ina campus or enterprise network as a vehicle to configure wiring closetswitches or wireless access points. In many enterprise networks, the ITorganization spends a great deal of time and resources configuringaccess switches or wireless LAN access points that act as the primarynetwork entry device for network users. These network entry devicesnormally are provisioned with simple configurations, but occasionally aminor misconfiguration can cause many problems in the operation of adata network. A network with the location advertising system freesnetwork administrators from worrying about the validity of networkdevices as backbone network switches provision network access switchesand routers with the appropriate configuration based on where theyconnect to the network.

For illustration of this specific example, let network entry device 114f (FIG. 8) represent a wiring closet or a user access switch acting as aconfiguration client. In this environment, the user switch 114 f isconfigured to participate as a location client (e.g., includes locationclient functionality in location module 185 n). The location client 114f is connected to network infrastructure 101′ via connections to networkentry device 114 c, network entry device 114 g, and central switchingdevice 136′. Any of those other devices (i.e., network entry device 114c, network entry device 114 g and central switching device 136′) can actas a location advertising system switch and broadcast location,configuration, and other information to the network entry device 114 f,in this example, the location client.

To determine its physical location, device 114 f receives locationinformation from each of its neighboring devices, 114 c, 114 g, and136′. Device 114 c determines that since neighboring device 114 f isconnected to connection point 160 u, device 114 c is located at locationX1, Y1 and transmits the location information to device 114 f.Similarly, device 114 g determines that since neighboring device 114 fis connected to connection point 160 v, device 114 c is located atlocation X2, Y2 and device 136′ determines that since neighboring device114 f is connected to connection point 160 w, device 114 c is located atlocation X3, Y3. Device 114 c receives the coordinates from each of itsneighboring and compares them with each other to determine, with astatistical level of confidence what its actual physical location is.This level of confidence can be translated into a level of trust toassociate with the calculated physical location based on the receiveddata. For example, if all three neighboring devices provide the samecoordinates, then system 100′ can associate the highest value for thelevel of trust with that physical location.

To determine configuration, any combination of the other devices (i.e.,network entry device 114 c, network entry device 114 g, and centralswitching device 136′) advertises configuration parameters to locationclient 114 f. The configuration parameters can include, for example, thefollowing attributes: IP address of the user access switch, IP subnetmask of the user access switch, default IP route of the user accessswitch, SNMP trap destination IP address, SNMP read only communitystring, SNMP read-write community string, default VLAN ID on user ports,default IEEE priority mark for user access traffic, IEEE 802.1 Dspanning tree enabled or disabled, IEEE 802.1W rapid spanning treeenable or disable, enable IEEE 802.1X authentication on user ports,enable IEEE 802.1Q VLAN tagging on ports to data center/configurationprovisioning switch, geographic coordinates of the terminus of the datacable connected to this port, and the like. Table 4 illustrates anexample of some entries that can be included in an expanded locationdatabase in this location advertising system example. In this example,the first five columns from the left (i.e., entry port to geographiclocation, inclusive) represent information provisioned on the locationclient. The last two columns from the left (i.e., client switch IPaddress and serial number) represent information obtained/learned fromthe location client. TABLE 4 Default Enable Tagging Geographic VLAN IDon the Port Location of Client Entry on User Default where locationCable Switch IP Serial Port Ports Priority data is Received TerminusAddress Number 1 1024 0 TRUE Lat X1, Long 1.1.2.1 xxxxxx1 Y1, Alt Z1 21024 0 TRUE Lat X2, Long 1.1.2.2 xxxxxx2 Y2, Alt Z2 3 1025 0 TRUE LatX3, Long 1.1.3.1 xxxxxx3 Y3, Alt Z3 4 1026 0 TRUE Lat X1 , Long 1.1.4.1xxxxxx4 Y4, Alt Z4It is also possible for the location advertising system in theprovisioning switch to provide a temporary Internet address and/or theunified resource locator (URL) to a network attached location databasewhere the location client can retrieve a more advanced configurationfile. For example, see entries 6, 8, and 10 of Table 3 above. Theconfiguration file can be retrieved via standard mechanisms such astrivial file transfer protocol or Internet file transfer protocol.

Another specific example of automated network management employing thelocation advertising system is the provisioning of a basic switchconfiguration for local and wide area routers in a branch office. Inthis example, the network employs a branch office router and a regionaloffice as part of its location advertising system. In one example of theoperation described below, the user access switch is a branch officerouter and the data center switch is a regional office router. Inanother example of the operation described below, the user access switchis a network entry device in the branch office and the data centerswitch is a branch office router.

In operation, a user access LAN switch boots and starts sending outneighbor discover protocol packets. These packets will trigger the datacenter LAN switch/location advertising switch to which the locationclient connects to start sending neighbor discovery protocol packets.The data center switch/location advertising switch advertises theconfiguration associated with the port to which the location client/useraccess switch connects. This enables policy management configurations onthe port to which the switch connects (e.g., self enabled policy). Theuser access switch continues to transmit neighbor discovery protocolpackets to update the data center switch with inventory information,which can be accessed by a network management system.

5.3 Format of Location

The format of location information can vary in different versions of thesystem. The examples above illustrate some of the formats for locationinformation. The following formats are included as additional examples.The location information may be established as grid or map coordinateson a defined map coordinate system. For example, the locationinformation can be considered absolute (e.g., latitude x by longitude y,GPS location, Loran, Loran C, military grid), regional (e.g.,Massachusetts, building 1, the third floor), relative (e.g., x feet fromdoor y on floor z, office five on floor 3, on a 30-degree radial frompoint A), and/or aircraft systems, such as Very High Frequency (VHF)Omnidirectional Range (VOR) or Emergency Location System (ELS). It is tobe noted that GPS locating would include satellite and ground-basedstations. The location information may be three dimensional, includingelevation above sea level or above some defined position. The locationinformation can include a fourth dimension, accuracy indicator, asrequired by the federal communications commission for emergency E911interoperability. The location information also can include a locationidentification number as required by the federal communicationscommission for emergency E911 interoperability. The location informationcan be typed as numerical, string and the like.

5.4 Communicating Location Information (FIGS. 1 and 8)

To transmit location and other information among devices, the devicescan communicate with each other using a variety of protocols, which canbe based on the specific network solution considered. The examples aboveillustrate some of the protocols used to exchange information. Thefollowing protocols are included as additional examples. The devices canemploy the Internet Protocol (either version 4 or 6). A high layerprotocol can be used based on how system 100 distributes the locationinformation. For example, if system 100 stores the location informationas tables or files, system 100 can employ a high layer protocol such asLight Weight Directory Access Protocol (LDAP) to access and transmitlocation information between devices. If system 100 stores the locationinformation as databases, system 100 can employ a high layer protocolsuch as, Structured Query Language (SQL) or Open Database Connectivity(ODBC) to interact with devices over the Internet Protocol.

The devices also can use a Layer 2 protocol, or a protocol that does notrely on having an IP address to communicate. This enables the devices todefine the network layer address, and enables two devices to communicateon networks not operating with the Internet Protocol. The devices canalso employ Extensible Authentication Protocol (EAP) or IEEE 802.1X tocommunicate with each other. The devices can also communicate usingproprietary protocols that ride over IP (or other Layer 3 protocols) orMAC layer protocols.

For illustration, an example in the specific examples of locatingdevices section above employs IEEE Bridge Spanning Tree Protocol. Thatexample can be illustrated using other protocols also. For example, inanother example, system 100 employs a proprietary network neighbordiscovery protocol, Cabletron Discovery Protocol (CDP) by EnterasysNetworks, Inc. of Rochester, N.H. In a CDP example, network devicesutilize this protocol to provide neighbor discovery. A CDP discoverypacket is sent (step 305 (FIG. 3)) at defined intervals out of all portswith such discovery enabled. The location client receives (step 310(FIG. 3)) the discovery packets and decodes the device ID field. In aCDP discovery packet in particular, the device ID field is based on theprimary switch MAC address with the SNMP ifindex of the port from whichthe packet was sent. Using that decoded information, the location clientdetermines (step 315 (FIG. 3)) that the connection point ID={PrimarySwitch MAC}+{CDP Sourcing Port's ifindex}.

The system 100 can employ a combination of protocols to further automatethe techniques above. One example employing a combination of protocolsis an automated technique that populates the location database, whethercentralized or distributed, with connection point IDs. Both the CDP andthe IEEE Spanning Tree Protocol have IETF SNMP Management InformationBases (MIB) associated with them. The location server, when enabled witha SNMP client, can generate a list of connection point IDs in thenetwork environment.

In environments where IEEE Spanning Tree Protocol is the mechanism usedto discover a location client's connection point ID, the network can usethe IETF dot1dBridge MIB. The network uses the dot1dBaseBridgeAddressMIB object to define the unique switch identification. The network canderive the MAC address of the physical port by polling thedot1dBasePortifIndex MIB object. This MIB object corresponds to theifindex pointer in the IETF SNMP MIB 2 Interface MIB. By looking up theifPhysAddress MIB object by knowing the ifindex, the network managementdevice is able to populate the Connection ID list (e.g., IEEE 802.1 DConnection ID=Switch Base MAC Address+Port MAC Address).

When utilizing CDP as the protocol to detect a Connection ID, thenetwork can generate the connection list by polling certain SNMPvariables. The network uses the dot1dBaseBridgeAddress MIB object todefine the unique switch id. The network derives the MAC address of thephysical port by polling the dot1dBasePortifIndex MIB object. This MIBobject corresponds to the ifIndex pointer in the IETF SNMP MIB 2Interface MIB (e.g., CDP Connection ID=Switch Base MAC+ifIndex).

In some examples, it is possible for network switches to store locationinformation for each switch port using SNMP. A voice handset MIB allowsthe switch to store the ANSI LIN number for each port. This network canprovision this information in the switch via SNMP sets or local commandline configuration. This network can poll and/or map this information tothe connection point ID information.

5.5 Other Miscellaneous Variations

Other variations of the above examples can be implemented. The level oftrust in the examples above is described as a discrete numerical value.One example variation is that system 100 can employ string types andfuzzy logic techniques to implement the level of trust. For example, thelevels of trust can be very trustworthy, trustworthy, not tootrustworthy, neutral, untrustworthy and very untrustworthy.

Another example variation is that the illustrated processes may includeadditional steps. Further, the order of the steps illustrated as part ofprocesses is not limited to the order illustrated in their figures, asthe steps may be performed in other orders, and one or more steps may beperformed in series or in parallel to one or more other steps, or partsthereof. For example, user verification and location verification may beperformed in parallel.

Additionally, the processes, steps thereof and various examples andvariations of these processes and steps, individually or in combination,may be implemented as a computer program product tangibly ascomputer-readable signals on a computer-readable medium, for example, anon-volatile recording medium, an integrated circuit memory element, ora combination thereof. Such computer program product may includecomputer-readable signals tangibly embodied on the computer-readablemedium, where such signals define instructions, for example, as part ofone or more programs that, as a result of being executed by a computer,instruct the computer to perform one or more processes or acts describedherein, and/or various examples, variations and combinations thereof.Such instructions may be written in any of a plurality of programminglanguages, for example, Java, Visual Basic, C, or C++, Fortran, Pascal,Eiffel, Basic, COBOL, and the like, or any of a variety of combinationsthereof. The computer-readable medium on which such instructions arestored may reside on one or more of the components of system 100described above and may be distributed across one or more suchcomponents.

A number of examples to help illustrate the invention have beendescribed. Nevertheless, it will be understood that variousmodifications may be made without departing from the spirit and scope ofthe invention. Accordingly, other embodiments are within the scope ofthe following claims.

1. A computer-implemented method comprising: providing data thatincludes location-based access control information concerning a datarelay device located within a network infrastructure; and loading thedata relay device with one or more features, wherein the one or morefeatures loaded are dependent, at least in part, upon the location-basedaccess control information.
 2. The method of claim 1 wherein the one ormore features loaded includes one or more configuration files.
 3. Themethod of claim 1 wherein the one or more features loaded includes oneor more network priorities.
 4. The method of claim 1 wherein thelocation-based access control information is dependent, at least inpart, upon a transmission medium type.
 5. The method of claim 4 whereinthe transmission medium type includes a cable-based transmission medium.6. The method of claim 4 wherein the transmission medium type includes awireless transmission medium.
 7. The method of claim 1 wherein thelocation-based access control information is dependent, at least inpart, upon a physical location of the data relay device.
 8. The methodof claim 1 wherein the data comprises a computer file.
 9. A computerprogram product residing on a computer readable medium having aplurality of instructions stored thereon that, when executed by aprocessor, cause the processor to perform operations comprising:providing data that includes location-based access control informationconcerning a data relay device located within a network infrastructure;and loading the data relay device with one or more features, wherein theone or more features loaded are dependent, at least in part, upon thelocation-based access control information.
 10. The computer programproduct of claim 9 wherein the one or more features loaded includes oneor more configuration files.
 11. The computer program product of claim 9wherein the one or more features loaded includes one or more networkpriorities.
 12. The computer program product of claim 9 wherein thelocation-based access control information is dependent, at least inpart, upon a transmission medium type.
 13. The computer program productof claim 12 wherein the transmission medium type includes a cable-basedtransmission medium.
 14. The computer program product of claim 12wherein the transmission medium type includes a wireless transmissionmedium.
 15. The computer program product of claim 9 wherein thelocation-based access control information is dependent, at least inpart, upon a physical location of the data relay device.
 16. Thecomputer program product of claim 9 wherein the data comprises acomputer file.